我想获取作为声明存储在 JWT 中的角色。我正在使用以下代码来执行此操作:
DecodedJWT decodedJWT = JWT.require(Algorithm.HMAC512(SecurityConstants.SECRET.getBytes()))
.build()
.verify(token.replace(SecurityConstants.TOKEN_PREFIX, ""));
String user = decodedJWT.getSubject();
Claim claims = decodedJWT.getClaims();
String roles = claims.get("roles").toString();
但这最终会给出目标代码:
(Value of roles)JSONNodeClaim@10091
我调试了代码并发现了这样的声明:
如何提取“ROLE_ADMIN”?
最佳答案
您可以将声明转换为Claim 类并调用.asString() 方法将其作为字符串返回:
String claims = ((Claim) decodedJWT.getClaim("roles")).asString();
关于java - 解析 JWT 以获取声明时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63591110/