jwt token是什么
时间: 2023-07-09 13:25:39 浏览: 88
JWT(JSON Web Token)是一种用于在网络上安全传输信息的开放标准(RFC 7519),通常用于身份验证和授权。JWT由三部分组成:头部、载荷和签名,其中载荷通常包含用户的身份信息和一些其他元数据。JWT的格式是一个字符串,可以通过网络在各个系统之间进行安全传输。
Token(令牌)是一个通用术语,可以用来表示各种类型的凭证,包括身份验证令牌、访问令牌、刷新令牌等。在身份验证和授权方面,Token通常用于验证用户身份和授权访问资源。JWT是一种类型的Token,用于身份验证和授权。因此,JWT Token指的是使用JWT作为身份验证和授权令牌的Token。
相关问题
什么是JWT token
JWT (JSON Web Token) 是一种基于 JSON 的安全传输标准,用于在网络上传递声明(例如用户身份信息和权限)。它是一种轻量级的认证方式,可以在客户端和服务器之间传递信息,并保持信息的完整性和安全性。JWT Token 由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。头部包含 Token 的类型和加密算法,载荷包含需要传递的信息,签名用来验证 Token 的真实性和完整性。JWT Token 通常用于身份验证和授权,可以在 Web 应用中使用。
/** * 判断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"); }
这段代码实现了对 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" 字段的值,并将其作为字符串返回。
阅读全文