我正在开发一个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
}