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;
    }
    }
  • 相关阅读:
    129. Sum Root to Leaf Numbers
    113. Path Sum II
    114. Flatten Binary Tree to Linked List
    112. Path Sum
    100. Same Tree
    300. Longest Increasing Subsequence
    72. Edit Distance
    自定义js标签库
    JS 实现Table相同行的单元格自动合并示例代码
    mysql 高版本only_full_group_by 错误
  • 原文地址:https://www.cnblogs.com/yscec/p/11903598.html
Copyright © 2011-2022 走看看