我正在考虑使用JWT受众群体字段在我的应用中实施基于角色的授权.
所以我有ServiceA需要’RoleA’的观众,ServiceB需要’RoleB’等.然后当我发布JWT时,我会包括适当的观众.
JWT草案spec的相关部分:
The aud (audience) claim identifies the recipients that the JWT is intended for. Each principal intended to process the JWT MUST identify itself with a value in the audience claim. If the principal processing the claim does not identify itself with a value in the aud claim when this claim is present, then the JWT MUST be rejected… The interpretation of audience values is generally application specific.
所以它似乎可以工作,但是因为我是JWT的新手,我想知道:基于角色的授权是否适合观众领域的用例?或者我应该使用自定义角色数组等的有效负载滚动我自己的逻辑?
谢谢
最佳答案 我理解受众而不是可以授权用户的消费者/应用程序列表.
在我的应用程序中,我将角色放入有效负载中的自有数组中比如那样.
{
"sub": 1234567890,
"exp": 9876543210,
"name": "John Doe",
"roles": ["USER", "EDITOR"]
}
在服务器上,我被授权使用spring security和从“sub”加载的用户.
在客户端上,我可以使用这些角色来显示正确的按钮和字段.