我正在尝试设置基于json web令牌的api身份验证,该身份验证将用于API中的各种基于角色的授权。
我可以将角色值保留为令牌中的有效负载吗?安全吗?如果不成功登录后,管理员,用户或商家等保存角色的内容是什么?
答案 0 :(得分:2)
是的,如果您使用正确类型的令牌并正确命名您的自定义字段,您可以安全地在JWT中存储您喜欢的任何内容。
如果信息是公开的,并且您只是想确保用户无法将其更改为作弊,那么只需使用JWS并验证令牌的签名即可。如果签名算法基于公钥(RSA或ECDSA),您甚至可以执行此客户端。
如果用户不读取要存储在令牌上的信息,您可以设置JWE(加密)令牌。
你的角色"字段应命名为according to the spec, using a collision-resistant name,例如" com.yourdomainname.role"除非你确定你的代币永远不会被另一个需要"角色的客户使用。具有不同语义的字段。