繁体   English   中英

没有刷新令牌的ngx-auth

[英]Ngx-auth without refresh-token

我要进行身份验证。 他们想要使用ngx-auth-首先,他们想要实现,正如文档中所说的2个令牌:访问和刷新。 但是现在他们只想用1个令牌来做。 我的问题是:1)是否可以使用没有刷新令牌的软件包? 我认为该软件包主要基于该刷新令牌。 2)如何检查令牌的到期? 是否像基本jwt中那样通过exp参数? 我应该多久检查一次令牌有效性-在每次请求时还是应该每15分钟检查一次?

您可以使用此库。 要忽略RefreshToken,只需重写适当的方法即可。

要检查有效性,请解码令牌(base64),并检查exp属性以了解是否过期。 您应该在通过HTTP_INTERCEPTOR每个请求之前执行此HTTP_INTERCEPTOR 如果令牌已过期,则请求新令牌并重播原始查询。

更大的问题是,如果您不想使用过期令牌,如何重新生成过期令牌? 您不能在客户端上存储用户名和密码。 后端需要提供一些端点,该端点允许通过传递过期的令牌来重新生成令牌。

令牌应该长时间无效。 如果您的客户不希望刷新令牌,也许呢? 想要使令牌对例如有效。 然后24小时考虑将客户端IP地址放入令牌中,并在每次传入请求时对其进行验证。 这不是常见的方法,但是对于不遵循标准(例如附加安全机制)的“硬”客户来说是好的。

@编辑

我检查了ngx-auth源代码,刷新令牌的方法有点不同。 如果此库在后端返回401 Unauthorized给客户端时刷新令牌,则进行创作。 在这种情况下,您不必验证exp属性。 仅拦截所有传入的响应,如果状态为401,则意味着我们必须刷新令牌。

该库中的令牌服务只是没有逻辑的抽象接口。 您必须扩展AuthService类,并为特定方法提供自己的实现。

请检查ngx-auth-example存储库https://github.com/serhiisol/ngx-auth-example/blob/master/src/app/shared/authentication/authentication.service.ts

在这里,您可以对该库进行简单的实现。

您不想使用刷新令牌。 在这种情况下,请重写refreshToken方法并找到其他方法来处理重新授权。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM