小编tom*_*ekn的帖子

JWT 身份验证,无需获取每个请求的用户详细信息

我正在 Spring Security 中实现 JWT 身份验证。我有预定义的角色,例如。普通用户、管理员等

我有以下令牌有效载荷:

{
  "sub": "nick",
  "iat": "<some_date>",
  "exp": "<some_date+1h>",
  "scopes": [
    "ROLE_USER",
    "ROLE_ADMIN"
  ]
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我看到的大多数实现都是根据 id/username/email 从数据库中检索用户详细信息,然后使用这些数据来创建身份验证(例如,通过对 UsernamePasswordAuthenticationToken 进行身份验证)。对我来说,这实际上是一种更可取的方式,因为我总是拥有最新的特权和限制(例如,用户是否被禁止),并且与收益相比,时间开销并没有那么大。

我只是好奇如何仅根据传入请求中包含的角色(在其授权标头令牌中)使用 Spring Security 实现授权。我只想在请求被适当路由后访问控制器中的用户标识符。仅基于检查到期时间和角色有效性的令牌验证是否就足够了?

spring spring-security jwt

3
推荐指数
1
解决办法
946
查看次数

标签 统计

jwt ×1

spring ×1

spring-security ×1