在android/java中解析JWT令牌负载数据以获得特定值

在android/java中解析JWT令牌负载数据以获得特定值,java,android,jwt,Java,Android,Jwt,我刚刚被介绍给JWT,想知道如何解析有效负载数据,以便使用键从中获取特定值 以下JWT令牌eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.EYJZDWIOixMJ0Nty3ODKWIIbMfTzSi6IKPvAg4GrG9LiiWiwIwWrTaw4IonryDWV9.TjVa95或M7E2CBAB30RmHrHhHdCefxJoyzEFH7HGQ中的示例 在jwt.io中解码时,有效负载数据包含以下对象 { "sub" : "1234567890" "

我刚刚被介绍给JWT,想知道如何解析有效负载数据,以便使用键从中获取特定值

以下JWT令牌eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.EYJZDWIOixMJ0Nty3ODKWIIbMfTzSi6IKPvAg4GrG9LiiWiwIwWrTaw4IonryDWV9.TjVa95或M7E2CBAB30RmHrHhHdCefxJoyzEFH7HGQ中的示例

在jwt.io中解码时,有效负载数据包含以下对象

{
    "sub" : "1234567890"
    "name" : "John Doe"
    "admin" : "true"
}  
我希望能够解析这个对象,从上面的JWT令牌中获取name的值,在本例中,name是johndoe

我已经读过了

但我想知道是否有有效的方法在android中使用一些库来实现这一点。任何帮助都将不胜感激

您可以使用:

String name = Jwts.parser().setSigningKey(keyUsedWhenSigningJwt).parseClaimsJws("base64EncodedJwtHere").getBody().get("name", String.class);

我解决了这个问题,通常解析字符串并从base64对其进行解码,然后将字符串转换为JSONObject并解析JSONObject以获得所需的值

你能举个例子吗?