问题标签 [angular-oauth2-oidc]
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.
javascript - 无法在应用程序之外导航
我有一个身份验证服务,它通过重定向到身份服务器来处理一些身份验证错误。我试图通过 来执行此操作window.location.href = environment.authCodeFlowIssuer;
,但出现错误:
Refused to frame 'http://localhost:5005/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'none'".
并且没有发生重定向。我现在不知道为什么这不起作用。如果我从开发工具命令行启动分配window.location.href
,那么它可以工作。对于这里发生的事情或如何解决此问题,我将不胜感激。
angular-oauth2-oidc - angular-oauth2-oidc :启用静默刷新会在 10 分钟后触发许多调用来获取令牌
使用 angular-oauth2-oidc 启用静默刷新会导致十分钟后触发一系列获取令牌的调用。据观察,触发了 100 多个调用来获取新令牌。我没有设置任何超时因子值,所有设置都是默认的。我在代码中使用了 this.oauthService.setupAutomaticSilentRefresh() 来启用静默刷新。请帮助我如何才能停止这么多电话。理想情况下,我认为只有一个调用会根据超时因子值或令牌过期来获取刷新令牌。
azure - 如何将 JWT 版本更新到 2.0?
在通过 login.microsoftonline.com 对自己进行身份验证后,我有一个来自 Azure 的 JWT,它的iss
价值是https://sts.windows.net/...
(经过一些研究,这似乎是由于"ver": 1.0
JWT 的原因)。为了获得由https://login.microsoftonline.com/...
我发布的 JWT,我更新了应用程序的清单,以便将其accessTokenAcceptedVersion
设置为2
,而不是null
按照默认设置。
我等了 5 个多小时,但我仍然得到了错误版本的令牌,我一直在用"ver": 1.0
and获取 JWT "iss": "https://sts.windows.net/..."
。有没有我遗漏的步骤?
scope
AuthConfig 的值,openid
我目前正在使用隐式流(将很快更改为身份验证代码流,但仅在修复 JWT 版本问题之后..)
提前致谢!
angular - AccessToken 到期后静默刷新仍然有效
我有一个 ID4 身份验证服务器,它与一个使用 SilentRefresh 和 PCKE 授权流程实现angular-oauth2-oidc的 Angular 应用程序配合得很好。
一切运行良好 - ID4 被配置为使用 5 分钟的生命周期为 AccessToken 提供服务,Angular 应用程序将每分钟静默刷新令牌(可能会在 0.75 时间过后更改为刷新)。但是,我发现的问题是,我可以在登录后关闭浏览器-然后在 10 分钟后在站点上再次打开它(在原始 AccessToken 过期而没有刷新之后)-但是静默刷新会刷新令牌并且用户保持登录状态。这是一个重大的安全漏洞。
我的客户端配置如下所示:
我的 ID4 配置如下所示:
我希望这种行为是静默刷新仅在我在站点上再次打开浏览器时才起作用,在 AccessToken 的到期时间内 - 即如果我在 AccessToken 过期后打开 - 那么我无法刷新并需要登录在。
似乎静默刷新不使用 RefreshTokens,因为登录时显示的范围不包括 offline_access 并且我没有AllowOfflineAccess
在 ID4 端设置为 true。此处是否使用了刷新令牌 - 是否以某种方式隐含配置 - 如果是这样,为什么您可以允许 RefreshTokens 的生命周期比 AccessTokens 长?
angular - 使用 Angular-oauth2-oidc 在 Angular 中使用 PKCE 的授权代码流
我想在我的 Angular SPA 中使用带有 PKCE 的代码流,为了方便我使用这个库:angular-oauth2-oidc
如果您单击该链接,则表示通过此配置,您将使用带有 PKCE 的代码流:
当用户单击登录时,我使用此命令启动流程:
这有效,我收到了访问权限和 ID 令牌,但是我如何确定我使用的是带有 PKCE 的代码流,而不仅仅是没有 PKCE 的普通代码流?代码挑战和验证器的创建和存储是否都由库为我处理?有没有办法停止该过程并查看授权码或代码质询?
这可能是一个奇怪的问题,但我只想确定它使用的是 PKCE ......
angular - 在 AppComponent 以外的其他组件中配置 angular-oauth2-oidc
我使用angular-oauth2-oidc库在我的 AppComponent 中使用 PKCE 实现 oAuth 授权代码流。它工作正常,我什至可以传递一些自定义查询参数,我需要根据用户的语言和国家/地区更改从我的 oAuth 授权服务器收到的登录表单。
但只有当我将语言和国家硬编码到customQueryParams
我的oAuthService
. 所以这段代码有效:
但是我需要从我的 URL 中动态检索国家和语言,然后将它们传递给 oAuthService,然后初始化代码流。但是现在当我想从 URL 中获取这些参数时,我遇到了问题。AppComponent 是一个非路由组件,因此我不能简单地使用paramMap.snapshot
. 所以我尝试了以下操作:
尽管此方法可以从我的 URL 中正确检索country
and (正如我在and语句中看到的那样),但我在这里从未收到访问令牌或 identityClaims。locale
console.log(country)
console.log(locale)
我还尝试将我所有的 oAuthService 配置移动到 中LoginComponent
,因为在那里我通常可以使用 activateRoute 访问 URL 参数,然后使用参数配置 oAuthService。但这也不起作用,我也从未收到访问令牌或 IdentityClaims。我不明白这一点,是否不能oAuthService
在另一个组件中配置而不是在 中AppComponent
?在我发现的所有示例中,它都在 中进行了配置AppComponent
,但为什么呢?这是必须的吗?为什么当我在第一种方法的订阅部分配置它时它不起作用?
非常感谢。
angular - Angular OAuthModule 配置工厂
我需要为OAuthModule配置动态 URL,以便在每次请求时发送访问令牌。我正在使用的解决方案(提示)通过工厂方法提供 OAuthModuleConfig 似乎不起作用。
这是我的 AppModule,我在其中配置所有内容:
我想我应该将此配置传递给OAuthModule.forRoot()
导入中的方法,但我不知道如何。
如何将提供的内容传递OAuthModuleConfig
给OAuthModule.forRoot()
?
angular - angular-oauth2-oidc - 阅读用户声明
我angular-oauth2-oidc
在 Angular 应用程序中使用 's Code Flow。一切正常,但是我无法阅读用户声明。
我尝试使用this.oAuthService.getIdToken()
, this.oAuthService.getAccessToken()
,this.oauthService.getUserInfo()
但我似乎没有得到任何可以使用常规方法解码的有效 JWT。
在我的后端 API (.NET Core) 中,我使用access_token
来查询 TokenIntrospection 端点,我可以正确查看所有声明。
相关资料:
有什么建议么?谢谢您的帮助。
angular-oauth2-oidc - 如何从Angular-oauth2-oidc中的访问令牌中提取角色
我正在使用angular-oauth2-oidc lib 进行身份验证。成功认证后,我想从访问令牌中获取角色/其他属性。但是到目前为止,还没有直接的方法可以解析令牌并赋予其内部属性。有什么方法可以获取令牌的所有角色或其他属性?任何帮助将非常感激。