JWT应用

本文介绍了一种使用JSON Web Tokens (JWT)进行用户信息加密和解密的方法,通过具体代码展示了如何将用户ID、姓名和头像存储为JWT,以及如何解析这些信息。

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

创建加密函数

/**
     * 加密函数
     * 将id,name,img存放到客户端,不占用服务端资源
     * @param user
     * @return
     */
    public static String geneJsonWebToken(User user){
        if(user == null || user.getId() == null || user.getName() == null
                || user.getHeadImg( )==null){
            return null;
        }
            String token = Jwts.builder().setSubject (SUBJECT)
            .claim( "id" ,user.getId())
            .claim( "name" , user.getName())
            .claim( "img" , user.getHeadImg())
            .setIssuedAt(new Date())
            .setExpiration(new Date (System.currentTimeMillis()+EXPIRE))//过期时间
            .signWith(SignatureAlgorithm.HS256,APPSECRET).compact();//compact:将秘钥压缩
            return token ;
        }

创建解密函数

/**
 *解密token
 *@param token
 * @return
 * setSigningKey(APPSECRET) 解密秘钥
 * parseClaimsJws(token)解密的信息
 * getBody()获取解密的内容
 */
public static Claims checkJWT(String token ){
    try{
        final Claims claims = Jwts.parser().setSigningKey(APPSECRET)
        .parseClaimsJws(token).getBody();
        return claims ;
    }catch (Exception e){ }
    return null;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值