Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何解码有效负载并在WT有效负载中获取值_Android_Jwt - Fatal编程技术网

Android 如何解码有效负载并在WT有效负载中获取值

Android 如何解码有效负载并在WT有效负载中获取值,android,jwt,Android,Jwt,我想检索JWT负载上的值,即我从登录结果中获得的令牌。当我尝试将令牌发送到服务器时,它是无效的,结果证明后端服务器没有用于验证令牌的代码。因此,我必须解码并声明令牌以获得值“id”、“username”和“email” 我尝试过使用jwt.io库以及其他不起作用的库。有没有其他方法可以让我以其他方式获取id、用户名和电子邮件的值 登录API的JSON响应 代币: eyJ0eXAiOiJKV1QiLCJhbGciOiJITUFDLVNIQTI1NiJ9.eyJpZCI6IjQ3NiIsImVtY

我想检索JWT负载上的值,即我从登录结果中获得的令牌。当我尝试将令牌发送到服务器时,它是无效的,结果证明后端服务器没有用于验证令牌的代码。因此,我必须解码并声明令牌以获得值“id”、“username”和“email”

我尝试过使用jwt.io库以及其他不起作用的库。有没有其他方法可以让我以其他方式获取id、用户名和电子邮件的值

登录API的JSON响应

代币:

eyJ0eXAiOiJKV1QiLCJhbGciOiJITUFDLVNIQTI1NiJ9.eyJpZCI6IjQ3NiIsImVtYWlsIjoiZHdpZml0cmlAZXhhbXBsZS5jb20iLCJtc2lzZG4iOiIwODk3MjIzNTQ5NjIiLCJ1c2VybmFtZSI6ImR3aWZpdHJpIiwicHJvZmlsZSI6eyJpZCI6IjI5MyIsImlkX2dlb2RpcmVjdG9yeSI6bnVsbCwiZnVsbG5hbWUiOiJkd2lmaXRyaSIsIm51bWJlciI6IjY5MDkzNyJ9fQ.cmPcQKouBSz_RVFUDWBE4-kDqard-ZfD5T0wBloOlGQ
用于解码令牌的代码

DecodedJWT jwtIdent = JWT.decode(token);
Toast.makeText(getActivity(), "this decode" + jwtIdent, Toast.LENGTH_SHORT).show();
与…合作

                token = sharedPrefManager.getSPToken();
                try {
                    decoded = JWTParser.decoded(token);
                } catch (Exception e) {
                    e.printStackTrace();
                }

那为什么没有解码呢?有错误吗?解码非常简单,因为它只是base64url encodig。解码后得到一个JSON,可以将其转换为对象。因此,对于解码,您不需要特定的JWT库。有一件事我不明白:为什么后端不能验证令牌,为什么后端不能验证令牌时,您必须在前端解码令牌?谁创建了令牌?是的,我也不明白为什么我使用的后端无法验证令牌。在尝试令牌之前,我将其发送到服务器,但没有响应。我认为这是后端制造商没有验证令牌的错误。因此,我必须对令牌进行解码,以便它可以成为@jpsi的对象值。我使用base64 decode使用它,但它不起作用@jpsy您必须单独解码部分(标头、有效负载),而不是一次解码整个令牌。我对它进行了解码,注意到在标题中有一个非标准的
alg值(“alg”:“HMAC-SHA256”)。通常应该是HS256。这可能是服务器上验证失败的原因。