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

0 投票
1 回答
736 浏览

angular - 自定义范围:将 angular-oauth2-oidc 与 Auth0 和 Github 一起使用

我正在尝试将angular-oauth2-oidc库与Auth0 和 Github集成。请随时记住,我从 Auth0/Github UI 方面选择了所有范围(只是为了安全起见)。

使用最新功能

我正在使用angular-oauth2-oidc必须提供的最新功能。

  1. 例如,我正在使用代码流,即:
  1. 此外,我为我的 customQueryParams 使用了适当的受众,例如

可以在此处查看完整的 auth.config.ts 文件:

我遇到的自定义范围问题

我遇到的问题是我为角色指定的自定义范围不是通过使用 Auth0 Github 社交连接来实现的。我的范围字段如下所示:

,但access_token永远不会包括超出的范围openid profile email offline_access。即不会给应用程序read:roles导致 Auth0 角色 API 失败的范围/权限。

  • 我的 Github 社交登录正在运行。该应用程序将我重定向到 Github,它要求我登录,然后指定 Github 应用程序所需的范围。

  • 如果这个问题不够清楚,请随时发表评论,并将整理问题。

0 投票
1 回答
840 浏览

angular - 使用 angular-oauth2-oidc 登录后不生成令牌

我正在尝试使用 OAuth2 库 (angular-oauth2-oidc) 通过 aws cognito 进行身份验证。当我启动我的应用程序时,我很好地得到了 AwsCognito 的默认登录页面,但是当我输入登录名/密码时,我得到了一个循环页面(未生成令牌)。hasValidAccesToken 的值已经是 false 这是我登录后得到的循环 URL:

在我的代码下面:

Guards.ts

登录.ts

配置文件

有人对这个问题有想法吗?

0 投票
0 回答
118 浏览

angular - 使用 angular-oauth2-oidc 从身份验证中排除某些组件

我使用 angular-oauth2-oidc 进行身份验证。我正在寻找一种从身份验证中排除某些组件的方法。

我有一个组件,仅供内部使用,不需要任何身份验证。我计划用 canActivate 路由保护来保护它,并在那里检查 url 是否包含内部 ip(不是通过主机名调用的)。

但为此,我需要首先从身份验证中排除该组件。请有人给我一个提示,我该怎么做?谢谢你。

0 投票
1 回答
210 浏览

angular - 在 angular-oauth2-oidc 中禁用 TLS

angular-oauth2-oidc在我的项目中使用。Openid(身份)提供者使用自签名证书。身份提供者不在我们的控制范围内。当我们配置身份 url 并尝试从 angular 登录时,我们总是会收到错误消息。

当我们与身份提供商团队核实时,他们建议我们禁用 TLS 并尝试。但我没有看到任何禁用 TLS 的配置angular-oauth2-oidc

在这种情况下,解决方案可能是什么?

0 投票
1 回答
1188 浏览

angular - 加载发现文档时出错 - 使用 angular-oauth2-oidc 集成 AD FS

我正在研究需要使用 AD FS 进行身份验证的角度 SPA。我使用 Spring Boot 作为后端。

上面给出的是配置。我将此作为参考。

但我收到以下错误。

加载发现文档时出错 O {headers: h, status: 0, statusText: "Unknown Error", url: "https://adfs_domain/adfs/.well-known/openid-configuration", ok: false, ...} 错误: ProgressEvent {isTrusted: true, lengthComputable: false, loaded: 0, total: 0, type: "error", ...} headers: h {normalizedNames: Map(0), lazyUpdate: null, headers: Map(0)} 消息: " https://adfs_domain/adfs/.well-known/openid-configuration 的 Http 失败响应:0 未知错误" 名称:"HttpErrorResponse" ok: false 状态:0 statusText:"未知错误" url:"https:// adfs_domain/adfs/.well-known/openid-configuration"

注意:我可以从我的浏览器访问相同的 URL,https://adfs_domain/adfs/.well-known/openid-configuration。配置中的颁发者 URL 和浏览器中的响应也是相同的。

谁能帮忙?

0 投票
0 回答
405 浏览

angular - oauthService.getAccessToken() 在 angular-oauth2-oidc 中返回 null

下面给出的是使用 angular-oauth2-oidc 使用 AD FS 验证我的 Angular SPA 的代码

我可以成功登录应用程序,并且可以在 URL 中看到 access 和 id 令牌。

但是当我调用“oauthService.getAccessToken()”或“this.oauthService.getIdentityClaims()”时,结果是 null。

谁能告诉我我错过了什么?

注意:我已经从登录组件的构造函数中调用了上述方法。AD FS 重定向到的登录页面和页面不同。

0 投票
1 回答
95 浏览

angular - 确保在发出下一个值之前发生订阅的最佳方法

我正在使用 OAuth 2.0 在我的 Angular 应用程序中为我的用户检索令牌。我使用流行的库angular-oauth2-oidc来处理 OAuth 流。因此,在我的 AppComponent 中,我设置了 oAuthService angular-oauth2-oidc,然后通过调用在我的登录组件中启动 oAuth 流程initCodeFlow()。用户被重定向以输入他的凭据,然后他被重定向到我,我在 AppComponent 中收到令牌并将其作为下一个令牌放入我的 DataService TokenSubject。

但现在我想在 MainPageComponent 的标头中使用该令牌进行 API 调用。所以我在我的 MainPage 中订阅了 TokenSubject,当我收到 Token 时,订阅块中的代码就会执行。

但是,如果令牌 get 发送给我的速度比主页面构建的速度快怎么办?然后,当 AppComponent 发出下一个 Token 值时,我还没有订阅 Main Page 中的 TokenSubject。我不确定,但我的主页有时没有打开,我认为这可能是原因。

在发出 TokenSubject 之前,确保主页订阅 TokenSubject 的最佳方法是什么?

我的AppComponent

在我的主页中,我订阅了 sharedToken 但我不确定在发出令牌之前是否总是发生这种情况:

在我的 DataService 中,它看起来像这样:

更新:问题已解决,我的最终主要组件如下所示:

0 投票
1 回答
869 浏览

angular - Angular Oauth2 OIDC - 如何检查用户是否登录?

我正在使用 Angular 11 和版本 10 的 augular-oauth-oidc

这是检查用户当前是否登录的正确方法吗?

我觉得这很hacky...我只是在检查名称字段是否存在于身份中?

这如何防止用户仅在其控制台中修改此变量 - 除了在 api 提交时进行服务器端检查或其他内容。

Angular 路由守卫和拦截器能完成这项工作吗?

谢谢!

0 投票
1 回答
919 浏览

angular - 静默刷新在角度 oauth oidc 中不起作用

我正在尝试在我的 Angular SPA 中静默刷新访问令牌。针对 ADFS 的身份验证已完成。它工作正常,配置如下:

为了刷新令牌,iframe 被添加到当前页面。一切看起来都很好。我已将以下代码添加到 index.html 文件中。

此事件在 silentRefreshPostMessageEventListener 的 angular-oauth2-oidc.js 中被捕获。但问题是我在那个列表中得到的信息是,

MSIS9621:无法在未获得用户输入的情况下处理 OAuth 授权请求。

在 iframe 中生成的 src 标签值如下所示,

https://[adfs domain]/adfs/oauth2/authorize/?response_type=id_token%20token&client_id=af0e4d79-ae9d-4fda-86b3-265d1e86a61e&state=UmtkeUJfNDBCUU1VWkZyeWcubFlldlo3ZHFFbFRuVDI3TnNZUU5FVXJxTXpX&redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Fsearch&scope=openid%20profile% 20email&nonce=UmtkeUJfNDBCUU1VWkZyeWcubFlldlo3ZHFFbFRuVDI3TnNZUU5FVXJxTXpX&prompt=none

如果我在新选项卡中打开此 URL,我会在 Uri 中获得一个新的访问令牌。

谁能告诉我我在这里做错了什么?

更新

谢谢,加里·阿切尔的回答。

我通过在 PowerShell 中执行此代码对 ADFS 进行了更改,

Set-AdfsResponseHeaders -RemoveHeaders "X-Frame-Options"

没有改变。然后我设置下面的命令来解决这个问题。

Set-AdfsResponseHeaders -SetHeaderName "Content-Security-Policy" -SetHeaderValue "frame-ancestors < 来源 >"

0 投票
1 回答
148 浏览

auth0 - Spartacus3.2 - Auth0 注销给出 CORS 错误

我正在尝试使用 Spartacus Auth0 注销。我使用了“OAuthLibWrapperService”和注销方法。仅清除访问令牌的地方。我可以知道如何在单击注销按钮时重定向到 Auth0 登录屏幕。还尝试使用“OAuthService”和注销方法,仅清除无法重定向到 Auth0 的访问令牌。尝试使用“OAuthService”和 revokeTokenAndLogout 方法在网络选项卡注销 API 中显示 CORS 错误。请对此有任何帮助以解决注销问题?