Jwt 生成 token(Java 工具类)

JwtUtil

使用 Jwt 生成 token,并与前端交互。Jwt的相关知识请自行百度。

代码实现

Staff 实体类的导包已删除,请使用自己的类。

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

/**
 * @author NNroc
 * @date 2020/5/12 19:57
 */
public class JwtUtil {
    /**
     * 获取token
     *
     * @param encryKey
     * @param minutes
     * @return
     */
    public static String getToken(Staff staff, String encryKey, long minutes) {
        long currentTime = System.currentTimeMillis();
        Map<String, Object> map = new HashMap<>();
        map.put("staffId", staff.getStaffId());
//        map.put("staffWeight", staff.getStaffWeight());
        return Jwts.builder()
                .setId(UUID.randomUUID().toString()) //当前用户
                .setIssuedAt(new Date()) //签发日期
                .setSubject("staff") //说明
                .setIssuer("NNroc") //签发者信息
                .signWith(SignatureAlgorithm.HS256, encryKey) //加密方式
                .addClaims(map)
                .setExpiration(new Date(currentTime + minutes * 1000 * 60)) //过期时间
                .compact();
    }

    /**
     * 获取claims
     *
     * @param token
     * @param encryKey
     * @return
     */
    public static Claims getClaims(String token, String encryKey) {
        try {
            Claims claims = Jwts.parser().setSigningKey(encryKey).parseClaimsJws(token).getBody();
            return claims;
        } catch (Exception e) {
            return null;
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值