问题标签 [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.

0 投票
1 回答
187 浏览

asp.net-identity - 将我的注册页面中的第三方登录与 IdentityServer4 和 Angular 6 集成 - “在存储中未找到匹配状态”

我正在尝试在我的注册页面中实现第三方身份验证,但我无法让它与 IdentityServer4 一起使用。我让它在我的登录页面中工作,因为 oidc 客户端正在启动登录请求。但是,oidc 客户端不知道对我的注册页面的请求,因此当我发回身份验证令牌时,它无法识别状态并抛出异常:“在存储中找不到匹配的状态”。

我知道 IdentityServer4 不正式支持用户注册。我已经使用 ASP.Net Identity 进行了注册设置,但如果能够在我的注册页面上添加使用 [第三方提供商] 进行注册,那就太好了。有什么办法可以解决这个问题吗?我可以手动设置状态并将注册请求发送给我的身份提供者吗?这样,如果用户选择登录,则 oidc 客户端将具有有效状态。还有其他方法吗?谢谢。

0 投票
1 回答
405 浏览

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

知道如何进行这项工作吗?

0 投票
1 回答
2148 浏览

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 日志:

0 投票
1 回答
859 浏览

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 包中,因此应用程序中的代码都没有给出这个错误。

0 投票
1 回答
1631 浏览

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 结合使用?

0 投票
1 回答
875 浏览

angular - IdentityServer 4 用户注册 - 放在哪里?

我有一个 Angular 7 应用程序,它通过 oidc-client 与 IS4 对话,还与一个安全的 API 对话。从登录和交互的角度来看,一切都很好,但是我想实现用户注册,并且我在不同的地方阅读了关于以下问题的不同意见

放在哪里?

它应该在 IS4 应用程序中,它应该在 API 中吗?有人说 IS 应该是“唯一的”登录/注销,其余的应该住在其他地方。其他一些扩展了他们自己的 Identity Server 版本并在那里实现注册。

如果我不想在成功注册后自动登录,我不会问这个问题。我通过 API 在数据库中注册我的用户,但是我想用我的 IS 登录他们。现在,我不知道这是否是一个好习惯,假设它是,我是否可以简单地使用 SignInManager 或者我应该通过 HTTP 或其他方法调用 IS4。另一种选择是在注册成功后尝试从我的 Angular 应用程序登录,但是我想绕过登录屏幕并直接使用有效负载点击端点。那有意义吗?

有什么建议/想法吗?

谢谢!

0 投票
1 回答
357 浏览

javascript - 如何对具有依赖性的函数进行单元测试(角度)

我是单元测试的新手,并且有一些基础知识。但是,我正在尝试测试一种方法。此方法调用一个函数,该函数是 oidc-client.js 的一部分。它基本上让用户登录。

规格文件

组件.ts

我不确定如何测试这个。当我运行测试时,我只是得到'没有响应状态'。我希望测试通过,也许还有一些关于如何测试 completeAuthentication() 的想法

0 投票
1 回答
1706 浏览

identityserver4 - PKCE 的授权流程:“显示登录:用户未通过身份验证”

我们已经设置了一个在自己域的节点上运行的 vueJs spa。

我们已经在另一个域上设置了一个 asp.net 核心 IdentityServer4 应用程序。

我们正在尝试使用授权码 PKCE 流。

我们看过几篇文章,但大多数都有不同的配置,在同一域上使用隐式流或 MVC 客户端。

这是客户端的配置:

这是 IdentityServer 配置中设计的客户端:

日志:

预期:我们被重定向到http://localhost:8080并且用户已通过身份验证。(我们在 localhost:8080 上确实有一个登录组件,需要用户名/密码)。

0 投票
1 回答
1567 浏览

angular - 带有 oidc-client.js 的 Angular 应用程序需要在第二个选项卡中登录

我在 (oidc-client.js) + .Net Core IdentityServer4 处理的 Angular 8 中获得了授权。

一切似乎都很好,但是当我在第二个选项卡中打开同一个应用程序时,它需要我再次登录。IdentityServer4 有 cookie,因此单击登录按钮就足够了,无需再次提供登录名/密码即可接收新令牌。无论如何,它仍然很烦人。

有什么办法解决吗?我在 githubg 上发现了可能有部分帮助的问题。

有人建议需要将令牌本地化从LocalStorage更改为SessionStorage。但个人SessionStorage更好,我会把它放在那个地方。

0 投票
0 回答
3245 浏览

identityserver4 - 使用 oidc-client 的令牌过期问题?

我有一个使用 IS4 的站点,前端是 Angular 7。我有 oidc-client 库来处理所有用户身份验证等,一切正常。这是我第一次看到这个问题。我可以登录并很好地进行交互,使用我的权限,角色的东西,这一切都很好。有时我会在一些不活动后得到一个奇怪的错误,所以当我尝试执行安全操作时,我会直接得到一个错误,甚至没有访问我的 API。如果我刷新页面并执行操作,它工作正常。

我已经silent renew callback在我的组件中实现了,就像这样:

然后转到 authService 代码:

我的身份验证服务事件配置如下所示:

问题是,当您更新用户时,阅读一些帖子看起来应该有一个事件:

我的问题是,当您使用静默续订时是否必须添加它,如果不需要,如果这敲响了你们以前遇到过的任何问题的钟声。

谢谢