问题标签 [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 回答
472 浏览

angular - 在`Angular`中实现`Refresh Token`

我正在使用and来实现Spring这个安全性:OAuth2JWT

根据作者的说法,我可以通过这种方式使用令牌访问资源:

要访问资源使用(您需要一个已配置 ResourceServer 的不同应用程序):http localhost:8080/users 'Authorization: Bearer '$ACCESS_TOKEN

关于这一步:

要使用刷新令牌功能:http --form POST adminapp:password@localhost:9999/oauth/token grant_type=refresh_token refresh_token=$REFRESH_TOKEN

我不清楚何时必须刷新令牌以及如何将这部分处理到我的Angular应用程序中。

我是否需要实现一个计时器来不时刷新令牌,或者是否有其他方法来实现此功能?

0 投票
0 回答
462 浏览

angular - 使用 angular-oauth2-oidc 并且需要代理请求但不能

我开始在 Angular 9 中使用 angular-oauth2-oidc,并使用 Angular Live Development Server 并使用 IBM Cloud Identity 进行身份验证。我需要将请求代理到该后端,并且能够配置发现端点以进行代理:这是开发服务器代理配置:

这是包使用的“发行者”端点:

这很好用——请求被代理,我取回了发现文档。但是此时包使用它在文档中返回的端点,例如

它使用完整的 URL,我不知道如何为此配置代理规则。我想我看到了两种可能性:

  1. 以某种方式代理开发服务器中的完整 URL,然后在实际部署这项工作时在 nginx 中代理完整的 URL
  2. 以某种方式修改包正在使用的 url,就像我对上面的“发布者”端点所做的那样。

有什么想法吗?感谢您阅读本文!

0 投票
1 回答
1691 浏览

angular - angular-oauth2-oidc tryLogin() 未按预期工作

我在我的 angular 8 项目中使用了 8.0.4 的发布版本和授权代码流:

这是我的代码

最初,当用户未登录时,[2] 处的代码将用户重定向到登录页面。

一旦用户提供用户名/密码并单击登录,身份提供者将使用查询字符串中的“代码”重定向回应用程序,也就是说,当我期望 [1] 处的代码使用代码登录用户时(通过将其兑换为令牌)。

相反,tryLogin() 方法不起作用,并且用户再次被重定向到无限循环中的授权端点。

请帮助我理解,这里出了什么问题。

另外,此示例是否:https ://github.com/jeroenheijmans/sample-angular-oauth2-oidc-with-auth-guards/ 适用于版本 8?

0 投票
0 回答
1535 浏览

angular - 使用 angular-oauth2-oidc 实现 OAuth2 代码流

我正在使用 angular-oauth2-oidc 在 angular 10 应用程序中实现授权代码流。主要思想很简单,我只有一个带有按钮的应用程序组件。当用户单击它时,他必须被重定向到身份验证提供程序登录页面,并在成功登录后返回应用程序。

身份验证由以下服务处理:

这可行,但我对构造函数中的 URL 检查有点困扰。但是,如果我不这样做,一旦成功登录,用户就会被正确地重定向到登录页面并返回应用程序,但他会卡在代码流的中间。实际上,授权代码存在于 URL 中,但是 angular-oauth2-oidc 没有处理它,这就是为什么如果“代码”查询字符串存在,我必须再次调用构造函数中的登录方法。

我怀疑我做错了什么,因为我期望 angular-oauth2-oidc 会自动处理代码。

我在这里错过了什么吗?

0 投票
1 回答
1069 浏览

angular - 为什么 IdentityServer 4 代码流在一段时间后得到 invalid_grant 响应?

我正在为我的 Angular 应用程序使用 identityserver4 代码流。我正在使用angular-oauth2-oidc库。

我的配置是这样的:

登录应用程序后,库每 5 分钟发送一次刷新令牌请求。我可以在 chrome 开发人员工具中看到这一点。

但几个小时后,令牌刷新请求收到 400(错误请求)错误。错误信息是error: "invalid_grant"

这可能是什么原因?

0 投票
1 回答
1148 浏览

angular - Angular 9/OAuth2/OIDC 和路由问题

我已经使用 angular-oauth2-oidc API 实现了一个基本的 Oauth2/OIDC 静默刷新,并且在获取指向我的应用程序中特定区域的链接以正常工作时遇到了一些问题。

例如,应用程序为用户生成电子邮件以到达某个页面。单击该链接时,页面会呈现片刻,然后重新加载似乎来自 OAuth 请求,并且应用程序返回到初始页面。

我的 AppComponent 似乎在控制台日志中加载了两次:

我假设我在这里遗漏了一些非常简单的东西,但是在过去 8 个小时阅读了 angular-oauth2-oidc 文档、示例和谷歌搜索想法之后,我发现我是空的。

谢谢

0 投票
2 回答
609 浏览

refresh - 谷歌浏览器更新到版本 85 后静默刷新不起作用

我正在使用 angular-oidc-auth2 v9.0.3 通过静默刷新请求令牌更新。我正在使用隐式流程。在 google chrome 将版本更新到 85 之前,它一直运行良好。我观察了该请求,发现 Google chrome 曾经有推荐人政策:之前没有推荐人政策:当降级时,一切都很好。然后从版本 85 开始,他们默认为推荐人策略:strict-origin-when-cross-origin。之后它开始使令牌刷新失败。出于安全原因,我无法共享代码,但是我们的身份服务器与应用程序位于不同的域中。无论如何我可以为推荐人策略静默刷新请求设置标题吗?或者有什么其他方法可以解决?

0 投票
1 回答
127 浏览

okta - 使用 Okta 登录的 Angular

我是 Okta 和 OAuth 的新手。

我尝试先做一个示例教程,并按照此处描述的相同程序进行操作

我坚持使用 OpenId Connect 进行 Angular 身份验证。

我在我的 Octa 帐户中创建了 OIDC 应用程序,下面是默认的授权服务器:

在此处输入图像描述

下面是 Okta 中 OIDC 应用程序的快照

在此处输入图像描述

以下是我得到的输出和错误的快照:

在此处输入图像描述

当我单击登录按钮时,我收到 400 Bad Request

以下是请求网址:

https://dev-my-id.okta.com/oauth2/default/v1/authorize?client_id=0oa14cwbxyudJGVdr4x7&code_challenge=5QqCuQ-BjTJ7uoFVgpX2ourrL7XBxZ39WSSvvw1GDPw&code_challenge_method=S256&nonce=2HbF0A4V664QRo4CXSD51XhI8cGIWBzRvVxGIzyevzhlVByLYlz3NPkBEOcd0Ld3&redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Fcallback&response_type=code&state=jpew68c6Nwo6skLAPqtdtf4uXxTriKJMPiat7YxDUSvCXH87GSoSa9eeQsSxEnnH&scope= openid%20profile

在此处输入图像描述

0 投票
1 回答
1273 浏览

javascript - OAuth2 和 angular-auth2-oidc 库的问题 - PKCE 代码流

我是 OAuth2 和angular-auth2-oidc库的新手,所以如果我犯了一些新手错误,请多多包涵。

我想要实现的目标:用户将单击主页中的登录链接,他将被发送到提供商的站点进行登录,然后使用令牌重定向回主页。

到目前为止的结果:用户被发送到提供商的站点以登录并成功发送回我的站点的主页,但我没有得到任何令牌。我在控制台中输出了一些数据,ngOnit()它们都是空的,未定义的或假的。

ngOnit()函数内部,我还输出一些事件,我在控制台中得到的事件是token_refresh_error. 我没有在我的代码中明确地进行任何令牌刷新,但我仍然收到此错误。

在这篇文章的错误子标题下,我添加了有关错误的屏幕截图。

这是我的配置和实现:

这是我的 OAuth2 提供者的 openid 配置:

这是我的实现:

// 主页组件

// 包含登录功能的类

// 错误/错误截图

以下是用户被重定向回主页时控制台中的错误

1)在此屏幕截图中,值是 null、false 或 undefined,除非加载发现文档:

在此处输入图像描述

2)在以下屏幕截图中,您将看到EVENT-TYPE之一是token_refresh_error。并且事件原因BAD REQUEST尽管在 de initOAuthConfig()方法中我添加了该属性,但它正在尝试向其发出请求https//DOMAIN_PROVIDER/op/v1/token并且失败。您还可以看到错误是. 屏幕截图的第二行显示Error getting tokentokenEndPointerror: "invalid_grant"

我添加jwks: {'keys': ['https://DOMAIN_PROVIDER/op/v1/keys']}initOAuthConfig()认为它会解决问题,但它没有。

在此处输入图像描述

// 控制台的应用程序选项卡:会话存储

从控制台的应用程序选项卡中我可以看到会话存储中有一些键值对数据(本地存储中没有数据)见下一个屏幕截图:

在此处输入图像描述

0 投票
0 回答
111 浏览

oauth-2.0 - 没有发现文档的 angular-oidc 库代码流

我们必须在 Angular 应用程序中实现 oauth2代码流。到目前为止,我们一直使用隐式流程没有问题,我们正在使用这个库https://github.com/manfredsteyer/angular-oauth2-oidc。现在,对于代码流程,我们没有任何可用的发现文档,因此库无法继续流程。是否有可能手动配置代码流的 URL?我们使用的是 8.0.4 版本的库,我们的 Angular 版本是 7。

谢谢!