问题标签 [oidc-client-js]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-identity - 将我的注册页面中的第三方登录与 IdentityServer4 和 Angular 6 集成 - “在存储中未找到匹配状态”
我正在尝试在我的注册页面中实现第三方身份验证,但我无法让它与 IdentityServer4 一起使用。我让它在我的登录页面中工作,因为 oidc 客户端正在启动登录请求。但是,oidc 客户端不知道对我的注册页面的请求,因此当我发回身份验证令牌时,它无法识别状态并抛出异常:“在存储中找不到匹配的状态”。
我知道 IdentityServer4 不正式支持用户注册。我已经使用 ASP.Net Identity 进行了注册设置,但如果能够在我的注册页面上添加使用 [第三方提供商] 进行注册,那就太好了。有什么办法可以解决这个问题吗?我可以手动设置状态并将注册请求发送给我的身份提供者吗?这样,如果用户选择登录,则 oidc 客户端将具有有效状态。还有其他方法吗?谢谢。
vuepress - Vuepress oidc-client 阻止构建
看起来 Vuepress 是为公共文档制作的,但我们决定添加客户端和服务器安全性来保护一些文档页面。但不幸的是,虽然 oidc-client ( https://github.com/IdentityModel/oidc-client-js/wiki ) 在开发期间工作,但它在构建时抛出异常。
我得到ReferenceError: window is not defined
了,当我试图欺骗编译器时,const window = window || { location: {} };
我得到了TypeError: Cannot read property 'getItem' of undefined
知道如何进行这项工作吗?
angular - Identity Server 生产时的空 cookie
我有一个使用 oidc-client 的带有 Angular 客户端的 Identity Server 4 应用程序。问题是在生产中,addUserSignedOut
在我登录客户端后,该方法不会停止被调用。我在本地测试它并且工作正常。
我认为问题可能与部署时不存在的 cookie 有关。我在登录后检查checksession
getCookies()
方法和cookies是空的(document.cookie = ""
),知道如何解决这个问题吗?
这是我的 IDP 代码:
IDP注销控制器:
SAML 注销:
Angular 客户端 oidc-client 设置:
处理注销事件:
这是我的警卫,我检查用户是否登录并调用 signinRedirect()
:
这是AuthService
关于 oidc-client 的所有逻辑所在的类。
和signin-oidc-silent
组件:
我只是不知道为什么托管应用程序会发生无限循环。实际上,如果我在本地使用客户端并指向我托管的 IDP,我会得到相同的无限循环。
我在控制台上看不到任何错误,只有这个警告ResponseValidator._processSigninParams: Response was error login_required
这里有一些 IDP 日志:
javascript - React OIDC-Client IE Promise 未定义
我在 IE 11 上收到“'Promise' is undefined”错误,Chrome 和 Firefox 没有给出这个错误。
我正在为 OIDC 客户端使用以下软件包,我也已经向该作者提交了一个问题。 https://github.com/IdentityModel/oidc-client-js/issues/826
如果我单击链接 SCRIPT5009,我会被定向到 https://docs.microsoft.com/en-us/scripting/javascript/misc/undefined-identifier
我安装了以下两个,问题仍然存在 https://www.npmjs.com/package/babel-polyfill https://www.npmjs.com/package/promise-polyfill
此外,我在 StackOverflow 和网络上阅读了有关承诺错误来自使用箭头函数和具有 ES6 代码的文章,但是这个问题出现在 OIDC 包中,因此应用程序中的代码都没有给出这个错误。
reactjs - Cookiestorage 不适用于 SSR React 实现上的 oidc-client
如何在 SSR 环境中使用 oidc-client 运行 React 应用程序?
我正在开发一个使用 oidc-client (v 1.7.1) 的 React 实现。在非 SSR 环境中,解决方案很好。但我们的要求之一是该解决方案应该在 SSR 环境中运行。为了解决这个问题,我需要更改 oidc-client 设置中的存储。
我已经尝试了使用 cookie 存储而不是会话或本地存储的解决方案(检查https://github.com/IdentityModel/oidc-client-js/issues/269)但这种类型的存储不起作用(存储未定义)。
在 SSR 环境中使用 oidc-client 的最佳解决方案是什么?oidc-client 是否可以与 SSR 结合使用?
angular - IdentityServer 4 用户注册 - 放在哪里?
我有一个 Angular 7 应用程序,它通过 oidc-client 与 IS4 对话,还与一个安全的 API 对话。从登录和交互的角度来看,一切都很好,但是我想实现用户注册,并且我在不同的地方阅读了关于以下问题的不同意见
放在哪里?
它应该在 IS4 应用程序中,它应该在 API 中吗?有人说 IS 应该是“唯一的”登录/注销,其余的应该住在其他地方。其他一些扩展了他们自己的 Identity Server 版本并在那里实现注册。
如果我不想在成功注册后自动登录,我不会问这个问题。我通过 API 在数据库中注册我的用户,但是我想用我的 IS 登录他们。现在,我不知道这是否是一个好习惯,假设它是,我是否可以简单地使用 SignInManager 或者我应该通过 HTTP 或其他方法调用 IS4。另一种选择是在注册成功后尝试从我的 Angular 应用程序登录,但是我想绕过登录屏幕并直接使用有效负载点击端点。那有意义吗?
有什么建议/想法吗?
谢谢!
javascript - 如何对具有依赖性的函数进行单元测试(角度)
我是单元测试的新手,并且有一些基础知识。但是,我正在尝试测试一种方法。此方法调用一个函数,该函数是 oidc-client.js 的一部分。它基本上让用户登录。
规格文件
组件.ts
我不确定如何测试这个。当我运行测试时,我只是得到'没有响应状态'。我希望测试通过,也许还有一些关于如何测试 completeAuthentication() 的想法
identityserver4 - PKCE 的授权流程:“显示登录:用户未通过身份验证”
我们已经设置了一个在自己域的节点上运行的 vueJs spa。
我们已经在另一个域上设置了一个 asp.net 核心 IdentityServer4 应用程序。
我们正在尝试使用授权码 PKCE 流。
我们看过几篇文章,但大多数都有不同的配置,在同一域上使用隐式流或 MVC 客户端。
这是客户端的配置:
这是 IdentityServer 配置中设计的客户端:
日志:
预期:我们被重定向到http://localhost:8080并且用户已通过身份验证。(我们在 localhost:8080 上确实有一个登录组件,需要用户名/密码)。
angular - 带有 oidc-client.js 的 Angular 应用程序需要在第二个选项卡中登录
我在 (oidc-client.js) + .Net Core IdentityServer4 处理的 Angular 8 中获得了授权。
一切似乎都很好,但是当我在第二个选项卡中打开同一个应用程序时,它需要我再次登录。IdentityServer4 有 cookie,因此单击登录按钮就足够了,无需再次提供登录名/密码即可接收新令牌。无论如何,它仍然很烦人。
有什么办法解决吗?我在 githubg 上发现了可能有部分帮助的问题。
有人建议需要将令牌本地化从LocalStorage更改为SessionStorage。但个人SessionStorage更好,我会把它放在那个地方。
identityserver4 - 使用 oidc-client 的令牌过期问题?
我有一个使用 IS4 的站点,前端是 Angular 7。我有 oidc-client 库来处理所有用户身份验证等,一切正常。这是我第一次看到这个问题。我可以登录并很好地进行交互,使用我的权限,角色的东西,这一切都很好。有时我会在一些不活动后得到一个奇怪的错误,所以当我尝试执行安全操作时,我会直接得到一个错误,甚至没有访问我的 API。如果我刷新页面并执行操作,它工作正常。
我已经silent renew callback
在我的组件中实现了,就像这样:
然后转到 authService 代码:
我的身份验证服务事件配置如下所示:
问题是,当您更新用户时,阅读一些帖子看起来应该有一个事件:
我的问题是,当您使用静默续订时是否必须添加它,如果不需要,如果这敲响了你们以前遇到过的任何问题的钟声。
谢谢