/** * 判断token是否存在与有效 * @param jwtToken * @return */ public static boolean checkToken(String jwtToken) { if(ObjectUtils.isEmpty(jwtToken)) return false; try { Jwts.parser().setSigningKey(APP_SECRET).parseClaimsJws(jwtToken); } catch (Exception e) { e.printStackTrace(); return false; } return true; } /** * 判断token是否存在与有效 * @param request * @return */ public static boolean checkToken(HttpServletRequest request) { try { String jwtToken = request.getHeader("token"); if(ObjectUtils.isEmpty(jwtToken)) return false; Jwts.parser().setSigningKey(APP_SECRET).parseClaimsJws(jwtToken); } catch (Exception e) { e.printStackTrace(); return false; } return true; } /** * 根据token获取会员id * @param request * @return */ public static String getMemberIdByJwtToken(HttpServletRequest request) { String jwtToken = request.getHeader("token"); if(ObjectUtils.isEmpty(jwtToken)) return ""; Jws<Claims> claimsJws = Jwts.parser().setSigningKey(APP_SECRET).parseClaimsJws(jwtToken); Claims claims = claimsJws.getBody(); return (String)claims.get("account"); }
时间: 2024-02-15 21:28:35 浏览: 150
这段代码实现了对 Token 的检查和解析,以及获取其中的信息。
其中,checkToken(String jwtToken) 方法用于检查传入的 jwtToken 是否有效,如果有效则返回 true,否则返回 false。该方法首先判断 jwtToken 是否为空,如果为空则直接返回 false。然后使用 Jwts.parser().setSigningKey(APP_SECRET).parseClaimsJws(jwtToken) 对 jwtToken 进行解析和验证,如果解析和验证成功,则返回 true,否则返回 false。
checkToken(HttpServletRequest request) 方法与 checkToken(String jwtToken) 方法类似,不同点在于它从请求头中获取 jwtToken,而不是作为参数传入该方法。
getMemberIdByJwtToken(HttpServletRequest request) 方法用于从 Token 中获取用户的账户信息。它首先从请求头中获取 jwtToken,然后使用 Jwts.parser().setSigningKey(APP_SECRET).parseClaimsJws(jwtToken) 对 jwtToken 进行解析和验证,然后获取其中的 "account" 字段的值,并将其作为字符串返回。
相关问题
public static final long JWT_TOKEN_VALIDITY = 5 * 60 * 60;是什么意思
这是一个常量,它表示 JWT 令牌的有效期。在这个例子中,常量值为 5 * 60 * 60,表示 JWT 令牌的有效期为 5 小时。具体来说,这个常量值是通过将 5 小时转换为秒数来计算得到的,因为 JWT 令牌通常使用秒数作为有效期的单位。在生成 JWT 令牌的过程中,可以将这个常量值作为参数传递给 JWT 库,以便让 JWT 库在生成令牌时自动设置有效期。在验证 JWT 令牌时,应该检查令牌是否已经过期,以确保令牌仍然有效。
requests.exceptions.InvalidURL: Failed to parse: http://***:***/auth/v1/token?appid=***&secret=***
requests.exceptions.InvalidURL是requests库中的一个异常类,用于表示URL解析失败的情况。具体来说,当使用requests库发送HTTP请求时,如果传入的URL无法正确解析,就会抛出这个异常。
在你提供的例子中,URL为"http://***:***/auth/v1/token?appid=***&secret=***",其中包含了占位符。实际使用时,你需要将占位符替换为具体的值。
阅读全文