si dovrebbe dividere stringa: Se passate le prime due sezioni attraverso un decodificatore base 64, si otterrà il seguente (formattazione aggiunto per chiarezza):
intestazione
{
"alg": "HS256",
"typ": "JWT"
}
corpo
{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}
esempio di codice:
public class JWTUtils {
public static void decoded(String JWTEncoded) throws Exception {
try {
String[] split = JWTEncoded.split("\\.");
Log.d("JWT_DECODED", "Header: " + getJson(split[0]));
Log.d("JWT_DECODED", "Body: " + getJson(split[1]));
} catch (UnsupportedEncodingException e) {
//Error
}
}
private static String getJson(String strEncoded) throws UnsupportedEncodingException{
byte[] decodedBytes = Base64.decode(strEncoded, Base64.URL_SAFE);
return new String(decodedBytes, "UTF-8");
}
}
Metodo
chiamata per esempio
JWTUtils.decoded("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ");
riferimento libreria: prova https://github.com/jwtk/jjwt
JWT: https://jwt.io/
fonte
2016-08-03 18:22:28
Il problema con questo è che è funziona solo a partire dal 26 API – Thecave3