zoukankan      html  css  js  c++  java
  • JWT工具类

    package com.ynhrm.common.utils;

    import io.jsonwebtoken.Claims;
    import io.jsonwebtoken.JwtBuilder;
    import io.jsonwebtoken.Jwts;
    import io.jsonwebtoken.SignatureAlgorithm;
    import lombok.Data;
    import lombok.Getter;
    import lombok.Setter;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;

    import java.util.Date;
    import java.util.Map;



    @Component
    @ConfigurationProperties("jwt.config")
    @Data
    public class JWTUtils {
    private String key;//签名私钥
    private Long ttl;//签名失效时间
    /* private String key="zcc-ynhrm";
    private int ttl=3600000;*/

    /**
    * 设置认证token
    * 参数:
    * id:登陆用户id
    * subject(主题):登陆用户名
    */
    public String createJWT(String id, String subject, Map<String,Object> map){
    //1.设置失效时间
    long now=System.currentTimeMillis();//当前毫秒数
    long exp=now+ttl;
    //2.创建jwtBuilder
    JwtBuilder jwtBuilder = Jwts.builder().setId(id).setSubject(subject)
    .setIssuedAt(new Date())
    .signWith(SignatureAlgorithm.HS256, key);
    //3.通过map设置claims,指定失效时间
    for (Map.Entry<String,Object> entry:map.entrySet()){
    jwtBuilder.claim(entry.getKey(),entry.getValue());
    }
    //jwtBuilder.setClaims(map);
    jwtBuilder.setExpiration(new Date(exp));
    //4.创建token
    String token = jwtBuilder.compact();
    return token;
    }

    /**
    * 解析token字符串获取clamis
    */

    public Claims parseJWT(String token){
    Claims claims = Jwts.parser().setSigningKey(key).parseClaimsJws(token).getBody();
    return claims;
    }
    }
  • 相关阅读:
    str_pad 和 filter_var
    phpstorm主题下载地址
    php二维数组的排序
    wx.request出现400 bad request的问题
    php里的闭包函数
    关于宝塔下的项目中的php不能访问的问题
    字体大小适配宽度
    递归复制&查看文件夹下的指定后缀的文件
    find_in_set
    给动态ajax添加的元素添加click事件
  • 原文地址:https://www.cnblogs.com/yscec/p/11903598.html
Copyright © 2011-2022 走看看