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

angularjs - 使用 OIDC 的角度深度链接导航

我有一个应用程序https://app.example.com(主页),我有深层链接工作https://app.example.com/function/123(direct_link),如果用户已经通过身份验证,直接导航到 direct_link 工作.

我们正在使用 angular-oauth2-oidc,但我找不到启动身份验证并将用户带回 direct_link 后身份验证的方法,它总是返回首页,我已将 direct_link 再次粘贴到地址栏中。

0 投票
0 回答
323 浏览

angular6 - 每次在任何浏览器选项卡中打开页面时重定向以登录 angular-oauth-oidc

我希望用户在每次打开 Angular 6 SPA 时重定向以登录,该 SPA 使用身份服务器作为 angular-oauth-oidc 的授权服务器进行保护。

我正在使用 OAuth 2.0 隐式流程让用户使用 Angular SPA 登录。

我尝试清除 sessionStorage 或 localStorage 但它不起作用。如何使用这个库实现上述功能?

0 投票
1 回答
353 浏览

angular - 带有 Angular 静默刷新 POST 的身份服务器被拒绝

我在 .NET Core 站点中使用 Identity Server 4,并使用它来处理带有 PCKE 的 Angular 应用程序的 OAUTH(使用 angular-oauth-oidc 库)。正常的登录过程工作正常,但是当网站尝试执行静默刷新时,它会向 http:// identityServerURL /connect/token 发送 HTTP POST,其中包含标题:

  • grant_type : refresh_token
  • client_id: xxxxxxxxxxxxxxxxxxxxxxxxxxx
  • 范围: openid 配置文件offline_access
  • 刷新令牌:
  • client_secret: xxxxxxxxxxxxxxxxxxxxx

从 IdentityServer 接收回 Http 400 代码,并且从日志中显示不允许向该端点进行 HTTP POST。

有没有人对此有任何想法和/或如何让刷新令牌工作?

提前致谢

0 投票
2 回答
1299 浏览

angular - angular-oauth2-oidc 忘记密码流程

我正在使用 angular-oauth2-oidc 在我的 Angular (8) 应用程序上设置 B2C。我有一个登录和退出策略,并且我已经成功地设置了 angular-oauth2-oidc 服务。目前我正在使用包含忘记密码链接的标准 Microsoft 登录页面。我已经为 B2C 中的忘记密码创建了流程,但我正在努力将其集成到 angular-oauth2-oidc 中。当我单击忘记密码链接时,B2C 抛出错误“AADB2C90118”;为了确保流程正确,我已经测试了创建 AuthConfig 文件的流程,例如我为登录策略创建的文件;只需使用忘记密码流信息(在这种情况下,用户单击一个按钮并被重定向到忘记密码颁发者) - 它就可以工作。

AuthConfig 文件中是否有任何变量可以设置为忘记密码端点或任何可以处理此问题的方法?

0 投票
0 回答
2510 浏览

angular - 验证 access_token 失败,错误的状态/随机数

我正在使用带有 ping 联合的“angular-oauth2-oidc”进行身份验证,身份验证在 Chrome 浏览器中运行良好,但在 Edge 中我们收到错误“验证 access_token 失败,错误状态/随机数。无效的'。但是我们看到客户端向 ping federation 发送 nonce,但是 ping federation 在身份令牌中发回 nonce 而不是在访问令牌中,这可能是什么问题?这发生在用户身份验证或登录时。如何解决任何想法会有帮助?

0 投票
1 回答
3389 浏览

angular - 如何使用 Keycloak 保护 Angular 8 前端和使用网关、eureka 的 Java Spring Cloud 微服务后端

提前,我为这个冗长的问题道歉!事实上,问题并没有那么长,但是我发布了很多我的代码片段,因为我真的不知道什么是相关的或不解决我的问题......

我一直在尝试使用以下方法制作一个简单的 poc: - Angular 8 前端 - 用于身份验证的 Keycloak 服务器 - Spring Cloud 后端架构: - 使用 Spring Cloud Security 保护的 Spring Cloud Gateway - Spring Cloud Netflix Eureka 服务器 - Spring云配置服务器 - 一些使用 Spring Security OAuth2 保护的 Springboot 微服务 不工作:我无法让我的 Angular 应用程序访问并从受保护的后端 uris 中获取任何数据。我得到401 Unauthorized回应。如果我对 MS Spring secu 过滤器设置断点,我只是在HttpServletRequest request

工作: - 通过 Angular 进行前端身份验证 - Angular 可以从后端未受保护的 uri 中获取数据 - 邮递员对受保护的后端 uri 进行测试,并将 OAuth2 授予类型设置为资源所有者密码凭据

我遵循了许多教程,但我有一个更好的结果:https ://blog.jdriven.com/2019/11/spring-cloud-gateway-with-openid-connect-and-token-relay/

以下是我认为相关的一段代码:

角度

我使用了这个 OAuth 库: https ://www.npmjs.com/package/angular-oauth2-oidc

    • 应用模块*
    • CustomAuthGuard*
    • DefaultOAuthInterceptor*
    • 授权配置*
    • 验证配置服务*
    • 授权配置模块*
  • 环境.ts

网关

    • 应用程序.yml*
    • SpringBoot应用程序*

微服务

    • 应用程序.yml*
    • 安全配置*
    • KeycloakRealmRoleConverter*
    • 用户名SubClaimAdapter*
    • 相关依赖*

我有一个非常标准的 Cleint Keycloak 配置,相关的是: - 访问类型:机密 - 启用标准流:开 - 启用隐式流:关 - 启用直接访问授权:开 - 启用服务帐户:开 - 启用授权:开

我真的尝试了很多东西,但我已经没有任何想法了......

有人可以看看并告诉我我做错了什么吗?我将不胜感激!:)

非常感谢您的时间!:)

0 投票
1 回答
510 浏览

angular - NavigateByUrl 在使用 angular-oauth2-oidc 的 onTokenReceived 中不起作用

我正在使用angular-oauth2-oidc包,我使用隐式流,并且(目前)无法迁移到代码流。

当流程结束时,我想导航到原始 url,我使用了文档建议的保留状态。

我的问题是我无法从函数导航,通过解决onTokenReceived的承诺解决但控制台上没有错误:navitageByUrlfalse

但是,如果使用以下命令在 100 毫秒后运行,它会起作用setTimeout

有人可以帮助我吗?为什么 navigateByUrl 不起作用?

0 投票
1 回答
2063 浏览

angular - OAuth2 和 OpenID 使用 angular-oauth2-oidc 连接。为什么 JWT 保存在本地存储中但没有(真正)使用?

对于我正在使用这个库的项目:angular-oauth2-oidc支持 OAuth 2 和 Angular 中的 OpenId Connect (OIDC)。

我已经设置好了一切,一切正常。

主要组件文件:

授权配置文件:

AuthGuard 文件:

在 OIDC Providers 站点上成功登录后,我可以看到 access_token 保存在本地浏览器的会话存储中:

在此处输入图像描述

这一切都很完美,但是,如果我现在继续更改会话存储中的令牌,我仍然能够进入我的受保护路线。虽然access_token 改了。改的时候id_token也是一样。

--> AuthGuard 仍然允许我访问受保护的路由。

有人能告诉我这怎么可能吗?

我无法在文档文档 angular-oauth2-oidc中找到有关内部处理方式的任何信息

我很确定这不是实现错误,而是库将令牌保存在内部某处,并改用未更改的令牌,因为其他一切都按预期完美运行。

但是,如果没有(真的)使用令牌,为什么还要将令牌保存在会话存储中?!?

更多的:

如果我真的从存储中删除了整个令牌,所有被阻止的路由实际上都被阻止了——这很好!当我将 JWT 中的到期时间 (exp) 更改为实际时间之前的某个值时,也会发生同样的事情。所以这两项检查实际上工作正常,但是当更改access_tokenid_tokenAuthGuard 仍然获得有效令牌时......(可能来自库内部?!?)

我认为总体上对 JWT 有一些我不理解的地方,以及为什么它们甚至保存在本地/会话存储中,或者为什么对它们的更改没有效果......

非常感谢任何答案。

0 投票
1 回答
365 浏览

angular - 如何在 Angular 应用程序中通过 oauth2-oidc 进行身份验证 --> spring backend --> 应用程序

首先,我在 oauth2 和 oidc 方面不是很有经验。

我得到了以下架构

总结一下这张图片:我希望能够通过我的 Angular 应用程序登录应用程序,该应用程序之间有一个 SpringBoot 后端。该应用程序已经通过 oauth2 和 oidc 支持 SSO。

我最初的尝试是在 Angular 应用程序中获取 ID 令牌。使用该令牌,我想通过我的后端访问应用程序,该应用程序将对用户进行身份验证。

我是否朝着正确的方向前进?如果是这样,为了获取 id 令牌,我必须在我的 Angular 应用程序中设置的最小配置是什么?对于应用程序,我已经获得了客户端 ID 和客户端密码,它们工作得非常好。

0 投票
2 回答
2851 浏览

angular - angular-oauth2-oidc 令牌在登录后始终无效

我正在尝试遵循文档https://github.com/manfredsteyer/angular-oauth2-oidc上的指南。

我的服务构造函数中有以下配置:

(我也尝试过使用 index.html 的重定向 url,但这似乎没有什么不同)

登录似乎工作得很好,我重定向到页面登录并重定向到主页:

但是以下仍然返回 false、false、null:

我的 url 中有一个 code= 对服务没有其他更改,而且一切似乎都让我登录了。我希望做一些愚蠢的事情或误解了正在发生的事情,但任何建议都会有所帮助。