2016-10-02 50 views
0

我剛剛介紹了JWT,並想知道如何解析有效載荷數據以使用密鑰從中獲取特定值。解析JWT令牌有效載荷數據以在android/java中獲得特定值

示例下面的JWT令牌eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

有效載荷數據包含下列對象時jwt.io解碼

{ 
    "sub" : "1234567890" 
    "name" : "John Doe" 
    "admin" : "true" 
} 

我希望能夠解析這個對象得到在這種情況下名稱的值是來自上述JWT令牌的John Doe。

我已經看過這個Android JWT parsing payload/claims when signed

,但我想知道是否有使用一些庫做到這一點android系統中有效的方式。任何幫助,將不勝感激。

回答

0

我解決它,通過正常解析字符串和BASE64解碼,然後鑄造字符串的JSONObject和解析的JSONObject來獲得所需的值。

0

您可以使用Java JWT爲:

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