您当前的位置: 首页 > 

java持续实践

暂无认证

  • 2浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

黑马十次方项目day06-10之token添加自定义属性

java持续实践 发布时间:2019-02-14 19:58:16 ,浏览量:2

文章目录
      • 生成令牌添加自定义属性
      • 解析令牌自定义属性

生成令牌添加自定义属性
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;

/**
 * 类名称:CreateJwt
 * 类描述:生成token的测试类
 *
 * @author: taohongchao
 * 创建时间:2019/2/13 19:26
 * Version 1.0
 */
public class CreateJwt {

    public static void main(String[] args){
        JwtBuilder jwtBuilder = Jwts.builder()
                .setId("666")  //登录用户的id
                .setSubject("小马")  //登录用户的名称
                .setIssuedAt(new Date()) //用户登录的时间
                .signWith(SignatureAlgorithm.HS256,"itcast")//头部信息 第一个参数为加密方式为哈希 256  第二个参数为加的盐为itcast
                .setExpiration(new Date(new Date().getTime()+60000))
                .claim("role","admin"); //设置token 的过期时间为一分钟
        System.out.println(jwtBuilder.compact());
    }
}

在.claim方法中,添加了role的信息 生成的令牌如下 eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI2NjYiLCJzdWIiOiLlsI_pqawiLCJpYXQiOjE1NTAxNDUzMDMsImV4cCI6MTU1MDE0NTM2Mywicm9sZSI6ImFkbWluIn0.LLfw1XyTz7zuhupagyJGtEQRsPsvBZpgztx82F1dTp4

解析令牌自定义属性
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;

import java.text.SimpleDateFormat;

/**
 * 类名称:ParseJwtTest
 * 类描述:TODO
 *
 * @author: taohongchao
 * 创建时间:2019/2/13 19:48
 * Version 1.0
 */
public class ParseJwtTest {

    public static void main(String[] args){
        Claims claims = Jwts.parser().setSigningKey("itcast") //指定
                .parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI2NjYiLCJzdWIiOiLlsI_pqawiLCJpYXQiOjE1NTAxNDUzMDMsImV4cCI6MTU1MDE0NTM2Mywicm9sZSI6ImFkbWluIn0.LLfw1XyTz7zuhupagyJGtEQRsPsvBZpgztx82F1dTp4")
                .getBody();

        System.out.println("用户的id: "+claims.getId());
        System.out.println("用户名: "+claims.getSubject());
        System.out.println("登录时间: "+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(claims.getIssuedAt()));
        System.out.println("过期时间: "+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(claims.getExpiration()));
        System.out.println("用户角色: "+claims.get("role"));
    }
}

在这一行代码中,对自定义的属性进行了解析 输出的结果如下

关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.0440s