在需要角色的身份验证机制中使用 JWT 的标准做法是什么?
- 角色是否应该包含在预定义的公共声明名称中?
['iss', 'sub', 'aud', 'exp', 'nbf', 'iat', 'jti]
- ...或者应该使用特定于应用程序的私有声明名称?
- 或者应用程序是否应该避免在 JWT 中放置角色,而只在应用程序中保留所有基于角色的逻辑?
更多详情:
当使用 JSON Web 令牌作为用户身份验证机制时,并且您将身份验证应用于一组路由,当令牌有效时,身份验证对集合中的所有路由都有效。如果令牌无效,则对集合中的所有路由都无效。
如果所有用户都具有相同的访问级别,那就太好了。但是,如果用户具有不同的角色,比如“用户”和“管理员”,并且只有“管理员”可以访问某些路由,那么这就会失败。