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;
    }
    }
  • 相关阅读:
    火炬之光使用了哪些技术
    计算机相关,性能开销,统计数据集锦
    IOS打开应用商店应用的几种方式
    IOS怎么获取plist文件里的属性
    IOS正则表达式的用法简介
    log4net学习
    技术之外
    百度面试题[转自CSDN]
    微软.NET开发认证基础技术知识大局观——核心篇
    基于ASP.NET 2.0 实现WEB打印方法的探讨
  • 原文地址:https://www.cnblogs.com/yscec/p/11903598.html
Copyright © 2011-2022 走看看