JWT用法

一、简介:
jwt 可以生成 一个加密的token,做为用户登录的令牌,当用户登录成功之后,发放给客户端。
请求需要登录的资源或者接口的时候,将token携带,后端验证token是否合法。
二、JWT的组成
jwt 有三部分组成:A.B.C
三、使用方法
一、简介:
jwt 可以生成 一个加密的token,做为用户登录的令牌,当用户登录成功之后,发放给客户端。
请求需要登录的资源或者接口的时候,将token携带,后端验证token是否合法。
二、JWT的组成
jwt 有三部分组成:A.B.C
A:Header,{“type”:“JWT”,“alg”:“HS256”} 固定 HS256加密方式

B:playload,存放信息,比如,用户id,过期时间等等,可以被解密,不能存放敏感信息

C: 签证,A和B加上秘钥 加密而成,只要秘钥不丢失,可以认为是安全的。

jwt 验证,主要就是验证C部分 是否合法。

三、使用方法
依赖:

io.jsonwebtoken jjwt 0.9.1

public class JWTUtils {

private static final String jwtToken = "123456Mszlu!@#$$";

public static String createToken(Long userId){
    Map<String,Object> claims = new HashMap<>();
    claims.put("userId",userId);
    JwtBuilder jwtBuilder = Jwts.builder()
            .signWith(SignatureAlgorithm.HS256, jwtToken) // 签发算法,秘钥为jwtToken
            .setClaims(claims) // body数据,要唯一,自行设置
            .setIssuedAt(new Date()) // 设置签发时间
            .setExpiration(new Date(System.currentTimeMillis() + 24 * 60 * 60 * 60 * 1000));// 一天的有效时间
    String token = jwtBuilder.compact();
    return token;
}

public static Map<String, Object> checkToken(String token){
    try {
        Jwt parse = Jwts.parser().setSigningKey(jwtToken).parse(token);
        return (Map<String, Object>) parse.getBody();
    }catch (Exception e){
        e.printStackTrace();
    }
    return null;

}

}

posted @   扶山  阅读(618)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示