c# - 使用不同域中的 oidc-client 和 identityServer4 登录

标签 c# vue.js .net-core identityserver4 oidc-client-js

我在本地主机中有一个 VueJs 应用程序,它使用 oidc-client.js 库来登录到另一个域中生产中的 IdentityServer4 服务器。

登录后,IdentityServer 将我重定向到 VueJs 应用程序,然后我调用方法 signinRedirectCallback(),但是 oidc-client 方法 getUser() 没有给出给我用户信息。

如果我检查 LocalStorage,我可以看到 oidc.user:IdentityServer4Url 值,我可以在其中看到用户的所有信息(access_token、id_token、profile ecc...),并且我'设置 Cookie“idsrv”、“idsrv.session”、“ARRAffinity”。

如果我在同一个域中尝试该应用程序,它就可以工作。 是否可以拥有本地主机应用程序并登录到另一个域? 谢谢

最佳答案

您绝对可以将您的身份服务器放在不同的域中,而且几乎大多数大型 IDP(身份提供者)都将位于不同的域中。

当你说你有本地存储的信息时,你确定访问 token 与你在 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,这样就可以断点调试了步骤并找出发生了什么。

希望这对您有所帮助。

关于c# - 使用不同域中的 oidc-client 和 identityServer4 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57783893/

相关文章:

c# - 使用 FileReader.readAsDataUrl 上传图片到 Web Api 服务

javascript - 如何将组件作为 prop 传递给 Vue.js 中的另一个组件

javascript - 如何在 vue.js 中同时使用 v-for 和源绑定(bind)?

c++-cli - .Net Core 中的 C++/CLI 支持

c# - 通过 IOptions 配置 EF Core 上下文

c# - Android Xamarin 在 Android.Widget 中没有 WebView

c# - 计算百分比值在 javascript 和 c# 之间有所不同

c# - 如何使用 EF 4 和 SQL Server CE 3.5 对查询结果进行分页

javascript - vue动态查询key

docker - 为什么我可以绑定(bind)到80端口