我正在开发一个Spring Boot REST API,该API公开了一个“ / verify”端点来验证令牌和对特定资源的访问。在FusionAuth中,我具有与用户关联的角色。那么,该方法是否可以验证用户是否具有该角色,以便我让他们通过?

最佳答案

在FusionAuth中,访问令牌是JWT,其中包含JSON负载,如下所示:

{
  "applicationId": "3c219e58-ed0e-4b18-ad48-f4f92793ae32",
  // ...
  "roles": [
    "necessary_role",
    "other_role"
  ],
  // ...
}


要从JWT中获取该JSON,您可以decode it yourself或将其传递给将返回可读JSON的少数FusionAuth端点之一:


Introspect /oauth2/introspect
UserInfo /oauth2/userinfo
Validate /api/jwt/validate


拥有可读的JSON之后,您只需检查roles数组以查找相关角色:

if (jwt.roles.contains("necessary_role") {
  // handle user with necessary_role
} else {
  // handle user without necessary_role
}

10-04 19:25