NestJS JWT 策略认证。有效载荷对所有用户使用相同的安全密钥进行签名

Posted

技术标签:

【中文标题】NestJS JWT 策略认证。有效载荷对所有用户使用相同的安全密钥进行签名【英文标题】:NestJS JWT Strategy authentication. Payload is signed with same secure key for all users 【发布时间】:2021-06-13 11:57:52 【问题描述】:

作为 NestJS 使用 Passport JWT 进行身份验证的文档,流程如下:

    客户端使用用户名/密码登录 如果用户名/密码有效,JWT 签署有效载荷(使用预配置的安全密钥)以创建访问令牌并将此访问令牌返回给客户端 客户端使用访问令牌请求受保护的资源

因此,如果用于签名有效负载的安全密钥被黑客入侵,则无需使用密码即可为所有用户生成访问令牌。

我上面的理解是否正确?什么是更安全的建议? 谢谢。

【问题讨论】:

【参考方案1】:

是的,如果密钥被泄露,攻击者可以自己生成密钥。

尝试采用更安全的凭据存储方式。如果它有某种密钥轮换机制,那就更好了。例如,我在我的项目中为此使用了AWS Secrets Manager。

【讨论】:

以上是关于NestJS JWT 策略认证。有效载荷对所有用户使用相同的安全密钥进行签名的主要内容,如果未能解决你的问题,请参考以下文章

nestjs 使用jwt实现认证

我在我的 nestJS 应用程序(使用 authGuard)中使用了 passport-jwt 身份验证策略,如何访问我的控制器中的令牌有效负载?

有效的 JWT 对 NestJS 守卫无效

NestJS:使用 JWT 向 AuthGuard 添加验证选项

NestJs Passport jwt 未知策略

JWT入门