您的springmvc结合jwt的使用,实现前后端分离token验证,我看了之后照着做的,想问一下在将token放置在请求头后,
怎么在后端中再次获取到它?
是它放在请求头中后自动被拦截器拦截吗?但它内部的值怎么获取
举个例子
公钥解析
private static Jws<Claims> parserToken(String token, PublicKey publicKey) {
return Jwts.parser().setSigningKey(publicKey).parseClaimsJws(token);
}
获取token中的信息
public static UserInfo getInfoFromToken(String token, PublicKey publicKey) throws Exception {
Jws<Claims> claimsJws = parserToken(token, publicKey);
Claims body = claimsJws.getBody();
return new UserInfo(
ObjectUtils.toLong(body.get(JwtConstants.JWT_KEY_ID)),
ObjectUtils.toString(body.get(JwtConstants.JWT_KEY_USER_NAME))
);
}
都可以的,简单的来说就是后端生成token,有的直接传给前端,前端通过localstorage进行存储,调用某些方法的时候,将其再传给后端,后端接收后然后调用jwt工具类解析,看看token是不是过期了,若过期则给前端发一个状态码,重定向到登录界面,若没有过期则进行下一步操作
定义一个过滤器,对对所有的请求都进行拦截,然后,获取Header中的jwt的值,对jwt进行校验就OK了。