使用 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
}

状态将成为用户对象的一部分,并将具有您提交的值。您可以重定向到任何您想要的地方。