一 问题提出
看代码时候,我看到下面一个函数verify,我想弄清楚代码是怎么跑到这个函数。
/**
* @className: JwtUtil
* @description: JwtUtil工具类
* @date: 2020/5/13
* @author: cakin
*/
public class JwtUtil {
/**
* 过期时间为一周
*/
private static final long EXPIRE_TIME = 7 * 12 * 3600 * 1000L;
/**
* 校验token是否正确
*
* @param token token
* @param username 用户名
* @param secret 用户的密码
* @return 是否正确
*/
public static boolean verify( String token, String username, String secret ) {
try {
Algorithm algorithm = Algorithm.HMAC256(secret);
JWTVerifier verifier = JWT.require(algorithm)
.withClaim("username", username)
.build();
verifier.verify(token);
return true;
} catch (Exception exception) {
return false;
}
}
}
二 调试过程
1 我先在下面这行代码前加上断点。
Algorithm algorithm = Algorithm.HMAC256(secret);
2 然后以debug模式启动项目。
3 再触发一个登陆流程。
4 最后IDEA给我打出了函数调用栈,如下图所示。
是不是很简单。