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

angular - 依赖注入角度 4:我的服务不是单例

我很难在这个配置中使用 openId auth 包......

我有 3 个模块:

模块 1:mainApplication 模块 2:核心模块 3:门户

我在核心模块中有一个服务(AuthService),从 angular-oauth2-oidc 扩展 OAuthService。

这只是一种将依赖项与 angular-oauth2-oidc 隔离的方法。

mainApplication 模块正在加载门户和核心服务。

我的门户模块:

我的核心模块:

我的配置服务:

似乎 AuthService 不止一次被实例化......

而且我在配置服务和使用它的那一刻之间丢失了配置。

0 投票
2 回答
1168 浏览

angular - angular-oauth2-oidc 库无法加载 jsrsasign 模块

我正在尝试为来自以下项目的项目升级 Angular 中的依赖项:https ://github.com/mgechev/angular-seed

依赖项是:https ://github.com/manfredsteyer/angular-oauth2-oidc但是我不太确定我的 System.JS 文件需要如何正确加载 oauth2-oidc 依赖的 jsrsasign 依赖项。目前,我有一个 project.config.ts 看起来像:

加载我的项目会导致如下错误:

我从高处和低处搜索了网络,似乎无法理解如何强制加载它。

此处的文档:https ://manfredsteyer.github.io/angular-oauth2-oidc/angular-oauth2-oidc/docs/additional-documentation/using-systemjs.html

似乎暗示了答案,但我已经尝试将其添加到 seed.config.ts 中,但没有任何喜悦。

以下直接取自我的 seed.config.ts 文件: 在此处输入图像描述

谁能解释如何专门为 System.JS / 角种子正确配置这个库?

0 投票
3 回答
8664 浏览

angular - 预期发现文档中的颁发者无效:带有 Azure B2C 的 angular-oauth2-oidc

目前我正在开发一个 Angular2 应用程序并希望使用 B2C 租户进行身份验证。它不起作用,因为我收到一个错误:

预期发现文档中的无效发行者:

设置和配置与https://github.com/manfredsteyer/angular-oauth2-oidc中描述的完全相同。

在给定的示例中,使用了以下函数:

不幸的是,loadDiscoveryDocumentAndTryLogin对我不起作用,因为对于 Azure B2C,我需要添加另一个带有附加参数(策略)的 URI。所以我尝试了“旧”功能loadDiscoveryDocument

新代码如下所示:

这是函数的第一部分:

这是来自 github 示例的函数:

loadDiscoveryDocument 验证文档:

问题在于validateDiscoveryDocumentB2C

原因是函数的第一部分:

B2C 发行人是:

提示:myportalb2c不是真正的门户。如果我调用标准 URI 或使用我的策略 (fullUrl),则响应文档中的颁发者与 URI 中的不同。似乎 URI 的一部分被 GUID 替换

“发行者”:“ https://login.microsoftonline.com/GUID/v2.0/ ”,“授权端点”:“ https://login.microsoftonline.com/myportalb2c.onmicrosoft.com/oauth2/v2.0/授权?p=b2c_1_signin_signup ”,“token_endpoint”:“ https://login.microsoftonline.com/myportalb2c.onmicrosoft.com/oauth2/v2.0/token?p=b2c_1_signin_signup

有人有同样的情况并找到了解决方法吗?文件中的发行人不同的原因是什么?

我还尝试了以下软件包:

我一般工作,但有时我需要在最终登录的应用程序中登录几次。

提前感谢您的支持!

0 投票
0 回答
1485 浏览

angular - Angular、Keycloak 和 SSO 使用 angular-oauth2-oidc 自动登录

我们正在尝试在我们的环境中创建以下设置... Angular 4.4+ 应用程序使用 Keycloak 作为具有 AD 联合和 Kerberos 支持的身份验证服务器。这是为了为我们的 Intranet 用户提供我们内部 Web 应用程序的真正 SSO 体验。

流动:

  1. 用户导航到应用程序
  2. 应用程序检查本地存储中的有效令牌
  3. 如果没有有效令牌,则启动 initImplicitFlow
  4. 服务器和客户端浏览器进行 Kerberos 协商,而不是显示登录屏幕
  5. 协商成功后重定向回应用程序,就像用户输入了正确的凭据一样。
  6. 应用程序在响应中检查有效令牌(这是模糊的部分),将令牌和用户角色保存到 localStorage,并且路由守卫现在允许在应用程序中导航。

我试图让以下示例进行自动登录启动,但似乎无法让它工作。任何人都可以查看此示例并查看将 initImplicitFlow 调用放在何处以使其工作吗?我尝试了很多不同的东西,以至于我什至无法保持直截了当。

参考项目 - https://github.com/manfredsteyer/angular-oauth2-oidc/tree/master/sample/src

感谢您对此提供任何帮助或指导。

0 投票
0 回答
1656 浏览

angular - angular-oauth2-oidc 注销无效+令牌错误

我有一个 Angular 5 应用程序,我在其中使用 okta 实现了 angular2-oauth-oidc。

我在尝试注销时收到 400 Bad Request 错误提示 Invalid_token。会话似乎已过期。

单击注销按钮时,用于注销的代码如下:

我的 app.component.ts 文件:

一旦会话过期,请帮助处理注销。提前致谢。

0 投票
1 回答
4483 浏览

angular - angular-oauth2-oidc 未设置 access_token

我正在关注 angular-oauth2-oidc 库的入门指南,但它唯一存储的是nonce值,access_token它不会出现在任何地方。

这是我的配置AuthConfig

app.component.ts的有以下几点:

在我的login.component.ts我有:

用户被重定向到这里后,我可以在 url 中看到 access_token 等的参数。

但是当我去 localStorage 时,我唯一能看到的是nonce它的价值,而不是access_token. 我已经尝试在控制台中打印它并收到null.

这是我回来的网址:http://localhost:4200/#access_token=thetoken&etcparams

0 投票
1 回答
4693 浏览

javascript - Angular 5 + OAuth2:未使用库设置令牌 [angular-oauth2-oidc]

我正在尝试将我的 Angular 应用程序配置为使用 OAuth2 库(angular-oauth2-oidc)。

在 auth.service.ts 文件中配置了我的 OAuthService:

在我的主页组件中,我添加了一个按钮来触发隐式流程并获取访问令牌。

初始化隐式流程后,应用程序重定向到我登录的提供商的正确登录页面,并重定向到我的 OAuth 配置的 redirectUri。

如果我试图获得一个状态,例如我调用 isLoggedIn 方法,我总是得到错误的。此外,在 hasValidAccessToken() 处有错误返回。

谁能展示如何正确配置 angular 5 和 oauth2?我还需要一种可能性来存储我给定的访问令牌,以便在我的休息方法中使用它们来获取数据。

0 投票
0 回答
2816 浏览

angular - 我收到一条失败消息:Unprotect ticket failed using core and Identity Server

我有一个使用 .net 核心和 Identity Server 4 进行身份验证的 Angular 应用程序。我将这个角度服务用于 openid https://github.com/manfredsteyer/angular-oauth2-oidc

登录后,我会使用令牌重定向回我的 Web 应用程序,但我的输出日志中不断出现这种情况?我怎样才能纠正这个问题或我在哪里可以看?

0 投票
1 回答
499 浏览

angular - 角度应用程序中的 OAuth 令牌刷新

我正在使用 angular-oauth2-oidc 包和 IdentityServer3。我在我的网络应用程序中使用 angular-oauth2-oidc 包中的自动刷新选项。当刷新发生时,我被重定向到我的起始页(即 IdentityServer 中的 redirectUri)。当我现在在我的详细信息页面上编辑数据时,当刷新发生时,我会突然转移回主视图。由于我使用基于散列的路由样式,因此在我的详细视图中得到类似“ http://myApp/#/detailView/id123456 ”的内容。我该如何处理?至少,我希望在刷新发生并优化时留在 detailView 上,将所有更改的数据保留在表单上。我错过了处理这种情况的“如何”方法。

在此先感谢...马可...

0 投票
2 回答
1967 浏览

angular - IdentityServer4 endsession 重定向到帐户/注销给出 404

我在 Azure 中通过 https url 运行 IdentityServer4,并且我正在使用带有angular-oauth2-oidc 库的 Angular CLI 项目来处理隐式流。我正在尝试设置单点注销,但它无法正常工作。

我正在调用logOut自动OAuthService​​配置(通过发现文档)在身份验证服务器上使用注销 url,即https://my-id4-server.example.com/connect/endsession使用包含 atoken_hint和 a 的查询字符串参数postLogoutUri

出于某种原因,实际行为是 IdentityServer4 将浏览器重定向(302)到 url https://my-id4-server.example.com/account/logout?logoutid=...,浏览器为此获得404。此外,如果我在单独的选项卡中打开 IdentityServer 页面,我可以看到我的会话仍然存在。

预期的行为是我的会话结束,并且我被重定向回我的 SPA。

在 ID4Server 端,我配置了:

  • RedirectUris以及PostLogoutRedirectUrishttp://localhost:4200我的 SPA 当前运行的地方)等;
  • AllowedGrantTypes设定为Implicit
  • AllowedCorsOrigins还允许我的本地主机 SPA

此外,我可以在配置端点中看到endsession正确配置的.well-known端点。

在 SPA 方面,我配置了issuerredirectUriclientIdscope. 使用重定向返回登录就可以了。


底线:如果endsession端点重定向到account/logout哪个又给出 404,有什么问题?