在需要角色的身份验证机制中使用JWT的标准做法是什么?

  • 角色是否应包含在预定义的公共声明名称中的某个位置?

  • ['iss', 'sub', 'aud', 'exp', 'nbf', 'iat', 'jti]

  • ...或者是否应使用特定于应用程序的私人声明名称?

  • 或者应用程序是否应该避免在JWT中放置角色并仅在应用程序中保留所有基于角色的逻辑?


更多详情:

使用JSON Web令牌作为用户身份验证机制时,如果对一组路由应用身份验证,则当令牌有效时,身份验证对该集中的所有路由都有效 . 如果令牌无效,则对于集合中的所有路由无效 .

如果所有用户具有相同级别的访问权限,那么这非常有用 . 但是,如果用户具有不同的角色,例如“用户”和“管理员”,并且只有“管理员”可以访问某些路由,则会出现这种情况 .