问题标签 [oidc-client]

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 投票
0 回答
49 浏览

asp.net - 带有 OidcClient 的身份服务器 4

我需要使用现有的身份服务器对我的 ASP.net MVC 应用程序进行身份验证。它重定向到登录页面并成功验证用户。

但是,问题在于它打开了一个新的浏览器窗口并且它没有点击“if(result.IsError)”块。所以我无法得到认证的结果。请帮助解决这个问题。

相关代码

客户端配置

0 投票
0 回答
121 浏览

timer - oidc-client addAccessTokenExpiring 定时器在哪里/如何设置?

为我们的 SPA 使用身份服务器 4 和 oidc-client。我希望实现一种半自动刷新令牌,因此当用户空闲时,令牌不会自动刷新。我希望在用户管理器中的“addAccessTokenExpiring”事件中触发“X 分钟警告”消息,用户可以在其中选择继续,它将刷新令牌,否则它将在“addAccessTokenExpired”事件中注销它们.

我想我已经解决了所有问题(至少在我的脑海中)并且 oidc-client 似乎正在触发所有正确的事情,但我无法解决的是如何设置到期计时器和过期计时器 - 它似乎总是一分钟的差异,但我想将其设置为过期前 2 或 3 分钟(例如)。

我可以看到身份服务器客户端类在哪里具有“AccessTokenLifeTime”,因此我可以设置过期时间,该时间被拉到某处并在 oidc-client 中使用,但我不知道如何设置“过期”时间. 您可以在控制台记录器中看到两个不同的计时器,例如

任何帮助将不胜感激 - oidc 的东西对我来说是一种奇怪的魔法,我想我几乎不明白它是如何工作的。

谢谢。

更新:doh,正如我发布的那样,我刚刚看到可以在 UserManagerSettings 对象中设置的“accessTokenExpiringNotificationTime”。但是由于在服务器上设置了过期超时(因为它正在管理我可以看到的其他一些事情),我想看看是否有一个等价的过期,所以这些值被保存在同一个地方而不是服务器上的一个还有一个在客户端,所以问题仍然存在(大部分)

0 投票
0 回答
32 浏览

javascript - 在 oidc-client 中调用 UserManager 类

作为学习练习,我利用这篇Medium 文章创建了一个 React 应用程序,它使用“oidc-react”库来管理用户身份

在文章中,作者在他自己的类构造函数中实例化了“UserManager”类(参见屏幕截图中的第 8 行)但在这样做之前,似乎“引用”了它(参见屏幕截图中的第 5 行)。对 Javascript 有点陌生,我不明白他为什么这样做。我实验性地删除了第 5 行,似乎没有效果。这是某种最佳实践吗?只是想学...

在此处输入图像描述

0 投票
1 回答
117 浏览

angular - oidc-client 首次尝试在角度组件中返回 false

我开发 Angular 应用程序并使用 oauth 进行身份验证。我安装了 oidc-client npm 包。并且各方面工作正常。但是 ngoninit 方法有一点错误。这是我的代码:

我在控制台中看到的是:

照片

正如您在图像上看到的,oninit 方法调用了两次。第一次返回 false 的状态,但第二次返回 true。

有关更多详细信息,我的 AuthService 在这里:

更新:

谢谢@MikeOne 和@Icekson,现在问题是为什么状态一开始是假的,第二次尝试是真的?

更新 2: 这是我的 header.component.html:

和 header.component.ts 在这里:

h2 标记显示“真”值,但 pec-header 标记的绑定值表现得好像它是假的。

谢谢

0 投票
0 回答
60 浏览

java - RestEasy JUnit Test:测试外部 API 是否正在使用 JUnit 测试

我在 J 单元测试中完全是新手,所以我到目前为止:

我使用 RESTEasy 在我的应用程序中调用外部 API,如下所示:

@OidcClientFilter 配置为从授权服务器获取承载令牌,并将其放入 DummyService 中的每个请求标头中。这项服务运作良好。现在我想为此服务编写一个 JUnit 测试来测试 Rest Call。如果有人能在正确的方向上为我提供建议,我将不胜感激。

我的想法是写这样的东西,但这不起作用:

我不想模拟 DummyService,我希望测试对外部服务器上的 API 执行真实请求。

如何编写测试这种休息呼叫的测试?

0 投票
0 回答
18 浏览

identityserver4 - getUser 返回 nul

我正在使用 IdentityServer 4 实现一个简单的 oidc-client。关于两者如何协同工作的文档不多。无论如何,我找到了这篇文章:

https://damienbod.com/2019/01/29/securing-a-vue-js-app-using-openid-connect-code-flow-with-pkce-and-identityserver4/

我想登录我的用户,然后执行 getUser(),以便我可以将用户的访问令牌保存在状态/本地存储中并将其提供给我的 httlClient authInterceptor(因此它对每个请求都使用该令牌)

问题是 getUser() 始终为空,即使在我登录后也是如此。

根据这条 github 消息链中的 brockallen: https ://github.com/IdentityModel/oidc-client-js/issues/182

一旦用户登录到您的 JS 应用程序,UserManager 就会存储有关用户的信息(个人资料、令牌等)。getUser() 只是加载该信息(想象您在页面边界之间导航)。

但是,我无法获取用户的信息。我错过了什么?

0 投票
1 回答
110 浏览

uwp - UWP App 中的 IdentityModel.OidcClient 从 3.1.2 迁移到 4.0

我最近将 IdentityModel.OidcClient 的 nuget 包从版本 3.1.2 更新到了 4.0。现在,由于缺少属性,我在现有实现中遇到错误,并且不知道如何从 XXX 迁移到 4.0。

在 nuget 的新 v4 中,无法识别OidcClientOptions诸如FlowResponseModeAuthorizeResponseMode、的某些属性。AuthenticationFlow非常感谢任何有关迁移到 v4 的帮助。

0 投票
0 回答
297 浏览

redux - TypeError:无法读取未定义的属性(读取“href”)

我正在尝试使用 redux-oidc 捕获令牌,但我在 redux 上有错误

这是我的错误

在此处输入图像描述

在此处输入图像描述

这是我的商店

这是我的 _app.js

这是我的 reducerList.js

这是我的 userManager.js

这是我的回调.js

这个错误可能是什么?,是 redux-oidc 还是我的 react-redux 代码或我的 callback.js 感谢所有的答案

0 投票
1 回答
14 浏览

uwp - 连接到 Azure AD 时,UWP 中的 OIDCClient“指定的协议未知”异常

通过 UWP 应用程序连接到 Azure AD 会IdentityModel.OidcClient生成如下错误。

异常消息 =“指定的协议未知。(来自 HRESULT 的异常:0x800C000D)”在堆栈跟踪中注意重要!

函数内部发生异常public class WabBrowser : IBrowserInvokeAsyncCore(BrowserOptions options, bool silentMode)

代码:

此问题仅在连接到其他身份服务器时发生,Azure AD并且在连接到其他身份服务器时,此实现工作正常。任何帮助,将不胜感激。

0 投票
1 回答
40 浏览

uwp - 从 IdentityServer 注销不会关闭 webview 弹出窗口

我已使用IdentityModel.OidcClientUWP 应用并连接到 Azure AD。登录 webview 打开并自动关闭,但注销弹出窗口不会自动关闭。

我的实现是基于这个。当注销发生时,最后的函数调用会在此处进行,但直到手动关闭弹出窗口,执行才会在此AuthenticateAsync函数调用中挂起。

注销发生正确,但弹出窗口仍然存在。注销后 URL 也已正确配置。 在此处输入图像描述