使用不同域中的 oidc-client 和 identityServer4 登录
SignIn with oidc-client and identityServer4 in different domain
我在本地主机中有一个 VueJs 应用程序,它使用 oidc-client.js
库登录另一个域中生产中的 IdentityServer4
服务器。
登录后,IdentityServer 将我重定向到 VueJs 应用程序,然后我调用方法 signinRedirectCallback()
,但是 oidc-client 方法 getUser()
没有给我用户信息。
如果我检查 LocalStorage,我可以看到 oidc.user:IdentityServer4Url
值,我可以在其中看到用户的所有信息(access_token、id_token、个人资料 ecc...),我有饼干 'idsrv'、'idsrv.session'、'ARRAffinity'.
如果我在同一个域中尝试该应用程序,它就可以工作。
是否可以拥有本地主机应用程序并登录到另一个域?
谢谢
您绝对可以将您的身份服务器放在不同的域中,而且几乎大多数大型 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 文件中的主要 属性 从 oidc-client.min.js 修改为 oidc-client.js, 这样就可以不断断点调试,一步步搞清楚到底是怎么回事。
希望对您有所帮助。
我在本地主机中有一个 VueJs 应用程序,它使用 oidc-client.js
库登录另一个域中生产中的 IdentityServer4
服务器。
登录后,IdentityServer 将我重定向到 VueJs 应用程序,然后我调用方法 signinRedirectCallback()
,但是 oidc-client 方法 getUser()
没有给我用户信息。
如果我检查 LocalStorage,我可以看到 oidc.user:IdentityServer4Url
值,我可以在其中看到用户的所有信息(access_token、id_token、个人资料 ecc...),我有饼干 'idsrv'、'idsrv.session'、'ARRAffinity'.
如果我在同一个域中尝试该应用程序,它就可以工作。 是否可以拥有本地主机应用程序并登录到另一个域? 谢谢
您绝对可以将您的身份服务器放在不同的域中,而且几乎大多数大型 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 文件中的主要 属性 从 oidc-client.min.js 修改为 oidc-client.js, 这样就可以不断断点调试,一步步搞清楚到底是怎么回事。
希望对您有所帮助。