用户权限更改后 JWT 刷新
Posted
技术标签:
【中文标题】用户权限更改后 JWT 刷新【英文标题】:JWT Refresh after user permissions have changed 【发布时间】:2016-11-09 21:38:35 【问题描述】:关于 json 网络令牌的快速问题。
当我的令牌过期时,我会根据我当前的令牌获得一个刷新令牌(不验证当前用户)。
那么当我更改用户的权限,并且他不再被允许从 web api 获取数据时会发生什么? 我应该将 jwt 存储在数据库中以便我可以验证他的权限还是什么?
我读到一个令牌被分成 3 个部分,其中包含一些用户信息。如果刷新令牌携带相同的信息,它怎么会有所不同?
我真的希望有人能帮我解决这个问题。
格兹, 罗宾
【问题讨论】:
【参考方案1】:那么当我更改用户的权限,并且他不再被允许从 web api 获取数据时会发生什么?
您应该使令牌无效
我应该将 jwt 存储在数据库中以便我可以验证他的权限还是什么?
这不是一个简单的问题,有多种选择。见Invalidating client side JWT session
1) 移除客户端令牌
2) 令牌黑名单:存储在注销和过期时间之间的令牌,标记过期并在每个请求中检查它。需要服务器存储
3) 使用其密码或权限摘要的哈希值对令牌进行签名。如果签名字段发生更改,任何以前的令牌都会自动验证失败。将此机制扩展到其他感兴趣的领域以进行签名。缺点是需要访问数据库
如果刷新令牌携带相同的信息,它怎么会有所不同?
第一部分是令牌的标头(签名算法),第二部分是有效载荷(主题、名称、颁发者、颁发时间、到期等),第三部分是签名,它在标头和有效载荷。由于“发布时间”等数据会有所不同,因此签名字段会发生变化
【讨论】:
以上是关于用户权限更改后 JWT 刷新的主要内容,如果未能解决你的问题,请参考以下文章