用户权限更改后 JWT 刷新

JWT Refresh after user permissions have changed

关于 json 网络令牌的简单问题。

当我的令牌过期时,我得到一个基于我当前令牌的刷新令牌(不验证当前用户)。

那么,如果我更改了某个用户的权限,并且他不再被允许从 Web api 获取数据,会发生什么情况? 我应该将 jwt 存储在数据库中以便验证他的权限还是什么?

而且我读到令牌分为 3 个部分,其中包含一些用户信息。如果刷新令牌携带相同的信息,它怎么可能不同?

我真的希望有人能帮我解决这个问题。

格茨, 罗宾

So what would happen when I changed the permissions from a user, and he isn't allowed to get data from the web api anymore?

您应该使令牌失效

Should I store the jwt in the DB so I can validate his permissions or what?

这不是一个简单的问题,有多种选择。参见 Invalidating client side JWT session

1) 删除客户端令牌

2) 令牌黑名单: 存储在注销和过期时间之间的令牌,标记过期并在每个请求中检查它。需要服务器存储

3) 使用密码或权限摘要的哈希值对令牌进行签名。 如果签名字段发生变化,任何先前的令牌将自动无法验证。将该机制扩展到其他感兴趣的领域来签名。缺点是它需要访问数据库

How can a refresh token be different if it sould carry the same information?

第一部分是token的header(签名算法),第二部分是payload(主题、名称、发行人、发行时间、有效期等),第三部分是签名,这是在 header 和有效负载上执行的。由于像'issue time'这样的数据会有所不同,所以签名字段会发生变化