引入pom <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.7.0</version> </dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional> </dependency>
@ConfigurationProperties(prefix = "charityshop.jwt")表示我配置的secret(key)和过期时间都在yml文件里
/***** ** 版权所有,侵权必究!*/odemon.utils;import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.t.properties.ConfigurationProperties; import org.springframework.stereotype.Component;import java.util.Date;/*** jwt工具类** @author*/ @ConfigurationProperties(prefix = "charityshop.jwt") @Component public class JwtUtils {private Logger logger = Logger(getClass());private String secret;private long expire;private String header;/*** 生成jwt token*/public String generateToken(long userId) {Date nowDate = new Date();//过期时间Date expireDate = new Time() + expire * 1000);return Jwts.builder().setHeaderParam("type", "JWT").setSubject(userId+"").setIssuedAt(nowDate).setExpiration(expireDate).signWith(SignatureAlgorithm.HS512, secret)pact();}public Claims getClaimByToken(String token) {try {return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody();}catch (Exception e){logger.debug("validate is token error ", e);return null;}}/*** token是否过期* @return true:过期*/public boolean isTokenExpired(Date expiration) {return expiration.before(new Date());}public String getSecret() {return secret;}public void setSecret(String secret) {this.secret = secret;}public long getExpire() {return expire;}public void setExpire(long expire) {pire = expire;}public String getHeader() {return header;}public void setHeader(String header) {this.header = header;} } 配置yml
charityshop:jwt:secret: expire:
@Autowired private JwtUtils jwtUtils;
然后注入就可以使用了
本文发布于:2024-01-30 19:12:54,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170661322322213.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |