问题标签 [angular2-jwt]

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 投票
0 回答
587 浏览

angularjs - auth0 getUserInfo app_metadata 问题

我是 auth0 和 Angular 2 的初学者。我正在尝试使用 Auth0 对我的应用程序进行身份验证和授权。在我用来初始化身份验证的代码下方

当我记录配置文件时,我在配置文件 json 中看不到 app_metadata,在 JWT 令牌中也看不到它。

数组[5] 0:"sub" 1:"name" 2:"nickname" 3:"picture" 4:"updated_at"

我需要它从用户配置文件中获取角色。

首先,我使用了 getProfile 方法,它返回了正确的元数据,但我读到它会被弃用,所以我用 getUserInfo 替换它,但它以不同的方式工作。

我注意到,如果我删除观众参数,authResult 包含 app_metadata 信息,如角色,但我从控制台收到“JWT 必须有 3 个部分”错误。

关于它是如何工作的,我想念一些东西。

请问,有人可以帮我吗?谢谢。

0 投票
1 回答
4276 浏览

angular - 带有 angular2 的 Asp.Net 核心标识

我用 angular2 创建了一个使用 Asp.Net 的网络应用程序。我使用了generator-aspnetcore-spa,现在我想添加身份。

我想我可以使用 Asp.Net Identity 并使用 SQL Server 数据库来存储用户名、密码和配置文件数据。我对如何将 Asp.Net Identity 与 angular2 一起使用有些疑问。我想使用 Asp.Net Identity 作为后端服务,使用 angular2 作为我的客户端。我发现了非常有趣的库angular2-jwt。我想我可以使用承载令牌身份验证方式来实现这一点。

我知道 angular2 没有 HttpInterceptor。

我还想让用户使用来自外部身份验证提供商(如 facebook、google 或 twitter)的凭据登录。

那么你能给我一些建议,我该怎么做,或者你能给我提供任何信息、超链接、在线资源,我该怎么做?

提前致谢!

0 投票
1 回答
606 浏览

unit-testing - 单元测试由使用 angular2-jwt AuthHttp 调用而不是 http 调用的服务注入的组件

我一直在使用 HTTP 调用 API 来做我的事情,后来引入了 angular2-jwt 来拦截 http 调用并传递 jwt 令牌。在使用 AuthHttp 之前,单元测试工作正常。我创建了“mockuserdata”模型来返回模拟值

每个单元测试用例都失败了,直到我添加了 http 和 AuthHttp 的提供程序,如下所示

在介绍了上述提供者之后,“应该实例化 UsersComponent ”,但“它检查 loadUserList() 是否绑定数据源”失败了

/* 用户操作服务*/

/* 用户列表组件*/

** * 用户组件单元测试 ** ** **

1)返回空值的单元测试有什么问题。

0 投票
2 回答
232 浏览

angular - 使用 angular2-jwt 在 Ionic 2 中设置动态标题

当用户登录我的应用程序时,他们必须说出他们属于哪个俱乐部。一旦他们选择了俱乐部,我将其保存在存储中并将其附加到标题中。这是我目前拥有的代码:

问题是getSubdomain()函数在调用 header 之前不返回名称。我知道这个问题是异步的。如果我输入返回“俱乐部名称”,它会非常好。我该如何解决这个问题?

0 投票
1 回答
2299 浏览

angular - Angular2 中的 AuthService

我目前正在 angular2 中构建一个应用程序。因此,我实现了一个处理登录、注册等的 AuthService。如果用户登录 id_token (angular2-jwt) 存储在 localStorage 中。用户的角色和权限存储在AuthService.userRoles和中AuthService.userPerms

布尔属性AuthService.isAuthenticated使用tokenNotExpired()来自 angular2-jwt 的函数,如果用户退出或存储在 localStorage 中的令牌已过期,该函数将返回 false。如果登录的用户AuthService.isAuthenticated更新为true;

我得到了使用 AuthGuard 的路由,它只允许经过身份验证AuthService.isAuthenticated的用户通过检查属性来激活此路由。

如果某条路线如下所示:

相同的 AuthGuard 通过AuthService.userPerms与路由的 data.permissions. 这也有效。

我的应用程序使用“主要组件”。这个主要组件是“公共的”并且不使用AuthGuard。它在 main 内部自举app.module没有自己的路线。在这个主要父组件的模板中,我得到了应用程序范围的导航。

在此导航内部是路由按钮,这些按钮受 AuthGuard 保护,因此只有在用户登录并在路由需要时具有某些权限或角色时才能访问。例如

如果用户单击此按钮并且获得授权,他将被重定向到unauthorized路由。工作至今

我想通过使这些按钮仅在用户能够激活路线时才可见来防止这种情况。

因此,在主 AppComponent(处理导航)中,我想检查模板内每个按钮的 userPermissions 并将结果存储在这样的对象中:

检查AuthService.isAuthorized(theRouteToBeActivated)在 AppComponent 构造函数内部调用的哪个处理,并将路由data.permission与存储在AuthService.userPerms.

问题是,由于 AppComponent 是公共的并且不受 AuthGuard 保护,因此构造函数在用户未登录时运行,这是正确的。此时被调用AuthService.isAuthorized(theRouteToBeActivated)返回 false 并将值存储在

这也是正确的。因此,如果用户退出,他看不到他无法激活的路由按钮。

但问题是:在用户登录后,AppComponents 构造函数中的调用AuthService.isAuthorized(theRouteToBeActivated)不再被调用,并且

保持原样。但是在用户登录后,需要再次调用该函数,以便它返回 true 并更改

这样模板中的按钮现在对登录用户可见。目前我需要在浏览器中重新加载应用程序。然后这些按钮对登录用户可见。但我不想重新加载。

我怎么能解决这个问题?

0 投票
0 回答
152 浏览

angular - 授权属性拒绝对有效 JwtSecurityToken 的请求

从这个很棒的教程中,我已经能够在服务器上生成一个令牌并将其保存在本地存储中。 https://stormpath.com/blog/token-authentication-asp-net-core

但是当将令牌发送到具有 [Authorize] 属性的控制器方法时,我得到 401

我的 startup.cs 看起来像这样

打字稿请求看起来像这样

奇怪的是,如果我运行令牌

没有承载它返回一个有效的令牌,但是如果令牌在开始时有一个“承载”,我会得到一个“JWT 格式不正确的异常”

0 投票
1 回答
2020 浏览

angular - 没有 AuthHttp 的提供者!在 angular2-jwt 上

我是 Angular 2 的新手,我想在我的项目中使用 JWT。因此,我完全按照使用基本配置的 angular2-jwt 官方页面给出的说明进行操作。我使用以下代码创建了一个名为 auth.module.ts 的文件:

下一步是发送经过身份验证的请求。我使用了一个组件,在其中放置了一个按钮,该按钮调用一个执行页面上建议的代码的函数:

文件:calendario.components.ts

当我进入这个组件时,我有一个错误:

知道我可以解决这个问题吗?我对 angular 2 真的很陌生,感谢您的帮助!

0 投票
1 回答
168 浏览

angular - 我们是否应该严重依赖本地 jwt 令牌到期日期来验证用户

我正在通过网络上的一些教程来学习 angular2。当使用 jwt 令牌创建登录页面时,许多示例方法如下: - 当用户输入电子邮件和密码时,提交事件将调用身份验证 api - 成功的身份验证将在有效负载中返回一个带有到期日期的令牌。此令牌存储在本地存储中 - 受限路线导航将通过本地存储中的 getItem 检查经过身份验证的用户,检查令牌的存在和到期日期

我的问题是:我可以使用 localstorage 中的令牌轻松访问 jwt.io,稍后将到期号更改为其他值,复制新生成的令牌并手动粘贴回 localstorage 项

我的想法:在任何路线导航之前调用 api tokenValidation,似乎会引入大量服务器调用

欣赏你的想法

0 投票
2 回答
202 浏览

angular - Angular 2 JWT 有未经身份验证的重定向器?

我来自 angular 1,我使用 JWT 令牌对用户进行身份验证。在角度 1 我有这个:

这是拦截器。我通过 JWT for Angular 2 的官方页面了解到,我可以轻松拦截用户的路由并使用 AuthGuard 将其重定向。没关系,我用过并且效果很好。但是,我的问题是……在这个版本的 Angular 2 JWT 上是否有 unauthenticatedRedirector?有了这个,如果用户向我的后端的任何端点发出请求,则会自动显示一条消息并将其重定向到登录页面。

知道如何实现这一点吗?我正在考虑放置一个函数来拦截对任何端点的每次调用并首先验证令牌是否有效,如果这是真的然后发出请求......但听起来很复杂。

0 投票
2 回答
269 浏览

angular - Angular-cli Auth0 登录配置

我想将 angular2-jwt 模块添加到我的 angular 项目中,但我不知道我需要在哪个文件中添加节点模块映射(我使用的是 1.0.0-beta.28.3 angular-cli 版本),我确实想要执行添加 auth0 单点登录和基于令牌的身份验证它给了我警告并且浏览器上没有显示任何内容

浏览器给了我这个例外

这是 auth.service.ts

这是 app.module.ts

在此处输入图像描述