一,添加依赖
<!--jwt-->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.18.2</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
二,JwtUtils
两个类随便一个即可:
2.1:
package com.guo.config.jwt;
import com.guo.entity.Admin;
import io.jsonwebtoken.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class JWTUtils {
private static final String SECRET = "GUOJIA";
/**
* 登录成功后生成 jwt token
* admin 登录的对象
* */
public static String createJWT(long jwtFailMillis, Admin admin) {
//指定签名时的签名算法 ,也就是header部分 jjwt已经将这部分封装好啦
SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
//生成jwt的时间
long nowJwtMillis = System.currentTimeMillis();
Date jwtMillis = new Date();
//创建payload的私有声明
// (根据特定的业务需要添加,如果要拿这个做验证,一般是需要和jwt的接收方提前沟通好验证方式的)
Map<String, Object> claims = new HashMap<String, Object>();
claims.put("adminId", admin.getId());
claims.put("adminName", admin.getName());
claims.put("adminPassword", admin.getPassword());
//生成签名的时候生成的密钥secret,这个方法本地封装了的,一般可以从本地配置文件中获取,切记这个密钥不可以外露。
//它就是服务器短的私钥,在任何场景下都不应该流露出去。一旦客户端知道就可以伪造自我签发 jwt
//生成签发人
String subject = admin.getName();
//下面就是为p

最低0.47元/天 解锁文章
416

被折叠的 条评论
为什么被折叠?



