gpt4 book ai didi

java - 如何验证字符串是否为 JWT token ?

转载 作者:行者123 更新时间:2023-12-01 16:38:14 30 4
gpt4 key购买 nike

在Java中,我们如何在不使用签名的情况下验证给定的字符串是否是JWT token ?

我正在使用

try {
return (new JwtConsumerBuilder()).setVerificationKey(SECRET_KEY).build().processToClaims(token);
} catch (InvalidJwtException var4) {
throw new IOException("Failed to parse");
}

这工作正常,但我想在没有 SECRET_KEY 的情况下验证这一点。

我只是想验证它是否是 JWT token 。

最佳答案

这是一个检查 JWT 结构的示例。只需要添加JWT应该携带的数据的验证即可

boolean isJWT(String jwt) {
String[] jwtSplitted = jwt.split("\\.");
if (jwtSplitted.length != 3) // The JWT is composed of three parts
return false;
try {
String jsonFirstPart = new String(Base64.getDecoder().decode(jwtSplitted[0]));
JSONObject firstPart = new JSONObject(jsonFirstPart); // The first part of the JWT is a JSON
if (!firstPart.has("alg")) // The first part has the attribute "alg"
return false;
String jsonSecondPart = new String(Base64.getDecoder().decode(jwtSplitted[1]));
JSONObject secondPart = new JSONObject(jsonSecondPart); // The first part of the JWT is a JSON
//Put the validations you think are necessary for the data the JWT should take to validate
}catch (JSONException err){
return false;
}
return true;
}

关于java - 如何验证字符串是否为 JWT token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61914194/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com