JWT api
2021/8/13 6:07:45
本文主要是介绍JWT api,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
<properties>
<jwt.version>0.7.0</jwt.version>
</properties>
<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>${jwt.version}</version> </dependency>
/** * jwt工具类 * */ @ConfigurationProperties(prefix = "sqx.jwt") @Component public class JwtUtils { private Logger logger = LoggerFactory.getLogger(getClass()); //密钥 private String secret; //时间 private long expire; private String header; /** * 生成jwt token */ public String generateToken(long userId) { Date nowDate = new Date(); //过期时间 Date expireDate = new Date(nowDate.getTime() + expire * 1000); // jwt实例 return Jwts.builder() // 设置header .setHeaderParam("typ", "JWT") .setSubject(userId+"")//代表这个JWT的主体 个人标识 .setIssuedAt(nowDate)//iat: jwt的签发时间 .setExpiration(expireDate)//设置过期时间 .signWith(SignatureAlgorithm.HS512, secret)//设置签名使用的签名算法和签名使用的秘钥 .compact(); //开始压缩 } 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) { this.expire = expire; } public String getHeader() { return header; } public void setHeader(String header) { this.header = header; } } yml
sqx: # APP模块,是通过jwt认证的,如果要使用APP模块,则需要修改【加密秘钥】 jwt: # 加密秘钥 secret: f4e2e52034348f86b67cde581c0f9eb5 # token有效时长,7天,单位秒 expire: 604800 header: token
这篇关于JWT api的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-29DataGrip使用ssh连接数据库的操作流程
- 2024-05-28SpringBoot3.2更新声明!
- 2024-05-28中外程序员到底有啥区别?
- 2024-05-25外企也半夜发布上线吗?
- 2024-05-24鸿蒙原生应用再新丁!芒果TV 入局鸿蒙
- 2024-05-22基本概念
- 2024-05-22检索数据
- 2024-05-22排序数据
- 2024-05-22基础过滤数据
- 2024-05-22通过逻辑操作符过滤数据