我在本地主机中有一个VueJs应用程序,它使用oidc-client.js库登录到生产环境中另一个域中的IdentityServer4服务器。
登录后,客户端将我重定向到VueJs应用程序,然后我调用方法signinRedirectCallback(),但oidc- IdentityServer方法getUser()不会给我用户信息。
如果我检查Cookie,我可以看到Cookie的值,其中我可以看到用户的所有信息(access_token,id_token,profile ecc...),我有Cookie 'idsrv','idsrv.session','ARRAffinity‘。
如果我在同一个域中尝试该应用程序,它将正常工作。有没有可能有一个本地主机应用程序并登录到另一个域?谢谢
发布于 2019-09-05 22:17:31
您完全可以将您的身份服务器放在不同的域中,并且几乎大多数大型IDP(身份提供商)都将位于不同的域中。
当你说,你在本地存储上有信息,你确定了吗,访问令牌与你在singin响应url中收到的是相同的?在本地存储中,你会看到一个名为"expires_at“的属性,我猜,看看这个值是否有效。
https://github.com/IdentityModel/oidc-client-js/blob/dev/src/UserManager.js#L595
如果所有的事情都是正确的,我想不出任何其他原因为什么它不应该检索。
另一个可能对您有帮助的调试技术是?转到您的node_modules文件夹,查找oidc-cient-js文件夹,并将package.json文件中的main属性从oidc-client.min.js修改为oidc-client.js,这样您就可以一步一步地保留断点和调试,并找出是怎么回事。
希望这能有所帮助。
https://stackoverflow.com/questions/57783893
复制相似问题