使用 oidc-client 检索状态数据
Retrieving state data with oidc-client
如何保留用户导航到的原始 url?
假设我有一个未经身份验证的用户导航到 http://localhost:9000/customer/123
要对用户进行身份验证,我会执行以下操作:
// in my app.js
new Oidc.UserManager().signinRedirect({state:'customer/123'}); // need a way to keep this url
当 returns 到 callback.html 时,我需要一种方法去原来的 url:
// callback.html
<script src="oidc-client.js"></script>
<script>
Oidc.Log.logger = console;
new Oidc.UserManager().signinRedirectCallback().then(function () {
var state = 'customer/123' // how to do a redirect to the page originally requested page?
window.location.href="http://localhost:9000/ + state
}).catch(function (e) {
console.error(e);
});
</script>
或者也许还有其他获取原始文件的方法url?
感谢您的帮助!
你的方法很好。你按照你的方式登录,然后在回调中,稍微修改你的代码(使用返回的用户对象):
new Oidc.UserManager().signinRedirectCallback().then(function (user){
var url = user.state;
//more code here
}
状态将成为用户对象的一部分,并将具有您提交的值。您可以重定向到任何您想要的地方。
如何保留用户导航到的原始 url? 假设我有一个未经身份验证的用户导航到 http://localhost:9000/customer/123
要对用户进行身份验证,我会执行以下操作:
// in my app.js
new Oidc.UserManager().signinRedirect({state:'customer/123'}); // need a way to keep this url
当 returns 到 callback.html 时,我需要一种方法去原来的 url:
// callback.html
<script src="oidc-client.js"></script>
<script>
Oidc.Log.logger = console;
new Oidc.UserManager().signinRedirectCallback().then(function () {
var state = 'customer/123' // how to do a redirect to the page originally requested page?
window.location.href="http://localhost:9000/ + state
}).catch(function (e) {
console.error(e);
});
</script>
或者也许还有其他获取原始文件的方法url?
感谢您的帮助!
你的方法很好。你按照你的方式登录,然后在回调中,稍微修改你的代码(使用返回的用户对象):
new Oidc.UserManager().signinRedirectCallback().then(function (user){
var url = user.state;
//more code here
}
状态将成为用户对象的一部分,并将具有您提交的值。您可以重定向到任何您想要的地方。