使用 JWT 不仅仅是身份验证

Posted

技术标签:

【中文标题】使用 JWT 不仅仅是身份验证【英文标题】:Using a JWT for more than authentication 【发布时间】:2018-01-25 20:41:22 【问题描述】:

JWT 是否应该不仅仅用于验证用户身份?我读到可以在其中存储非敏感内容(例如用户 ID)。可以在令牌中存储权限级别之类的东西吗?这样我就可以避免进行数据库调用。

【问题讨论】:

JWT 令牌可用于身份验证,但没有什么能阻止您存储用户角色或具有令牌访问级别的范围。 点赞,因为这是我想听到的答案 取决于JWT的具体类型。如果你使用 HMAC,那么该令牌的任何验证者也可以伪造其他令牌并获得更多的访问权限。也许您应该使用 RSA 并确保只有一个实体拥有私钥。 【参考方案1】:

JWT 令牌可用于身份验证,但没有什么能阻止您使用creating your own claims to store additional data,例如用户角色或访问范围。

一些身份验证提供程序会添加对其令牌的访问范围。看看这个answer。

【讨论】:

这个答案是在谈论刷新令牌吗?

以上是关于使用 JWT 不仅仅是身份验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 JWT 进行身份验证的最佳实践

使用机器对机器和基于用户的身份验证使用 JWT 进行嵌套身份验证和授权是一回事吗?

使用护照 jwt 进行身份验证

Ktor websockets 身份验证

身份验证:JWT 使用与会话

JWT身份验证中刷新令牌的正确实现是啥