我想通过rest API调用检查jwt token的有效性,是否有可能做到这一点?(如果可能的话,java,因为我有一个带有spring Boot 的Java后端和带有ReactJs的JavaScript前端)我已经用java生成了token,使用toeken jwt的其他服务。
p1tboqfb1#
我已经使用jsonwebtoken库完成了这一操作。您应该有用于加密jwt令牌的jwt密钥。您可以在rest API中使用这些方法:
jsonwebtoken
public boolean validateJwtToken(String authToken) { try { Jwts.parserBuilder().setSigningKey(key()).build().parse(authToken); return true; } catch (MalformedJwtException e) { logger.error("Invalid JWT token: {}", e.getMessage()); } return false; } private Key key() { return Keys.hmacShaKeyFor(Decoders.BASE64.decode(jwtSecret)); }
字符串还需要以下依赖项:
<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-api</artifactId> <version>0.11.5</version> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-impl</artifactId> <version>0.11.5</version> <scope>runtime</scope> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-jackson</artifactId> <version>0.11.5</version> <scope>runtime</scope> </dependency>
型
91zkwejq2#
public boolean validateToken(String authToken) throws IOException { try { Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(authToken); return true; } catch (ExpiredJwtException e) { log.warn(Expired_JWT_TOKEN); } catch (UnsupportedJwtException e) { log.warn(INVALID_JWT_TOKEN); } catch (MalformedJwtException e) { log.warn(INVALID_JWT_TOKEN); } catch (SignatureException e) { log.warn(INVALID_JWT_TOKEN); } catch (IllegalArgumentException e) { log.warn("Token validation error {}", e.getMessage()); } return false; }
字符串
2条答案
按热度按时间p1tboqfb1#
我已经使用
jsonwebtoken
库完成了这一操作。您应该有用于加密jwt令牌的jwt密钥。您可以在rest API中使用这些方法:字符串
还需要以下依赖项:
型
91zkwejq2#
字符串