zoukankan      html  css  js  c++  java
  • 使用jwt

    jwt:json web token

    使用jwt的好处
    1,无状态
    2解耦
    3,更适合于移动端Android,ios
    4,性能更好
    5,能够不考虑csrf攻击

    maven依赖

           <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt</artifactId>
                <version>0.6.0</version>
            </dependency>

    ①,客户端请求

            Date date = new Date();
            JwtBuilder signWith = Jwts.builder()
                                    .setId("2")//id
                                    .setSubject("冬马")//名字
                                    .setIssuedAt(date)//创建时间
                                    .signWith(SignatureAlgorithm.HS256,"salt")//签名算法,盐
                                    .claim("role", "admin")//添加自定义属性
                                    .setExpiration(new Date(date.getTime() + 1000 * 60))//一分钟过期
                                    ;
            
            System.out.println(signWith.compact());

    ②,服务端接收

        Claims body = Jwts.parser().setSigningKey("salt")
            .parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIyIiwic3ViIjoi5Yas6amsIiwiaWF0IjoxNTQyODY0NzA5LCJyb2xlIjoiYWRtaW4iLCJleHAiOjE1NDI4NjQ3Njl9.cjALFF2h3YC5LwffcYSoEyRd9q14CT60Gp1dg5hf8vU") 
            .getBody();
            System.out.println("用户id:"+body.getId());
            System.out.println("用户名:"+body.getSubject());
            System.out.println("发布时间:"+body.getIssuedAt());
            System.out.println("过期时间:"+body.getExpiration());
            System.out.println("角色:"+body.get("role"));
  • 相关阅读:
    wait与sleep区别?
    oracle死锁查询
    atomic 原子操作的类
    买票问题
    0001.第一个多线程demo--分批处理数据
    01: JavaScript实例
    01: 运维工作梳理
    04: 使用BeautifulSoup封装的xss过滤模块
    04: 打开tornado源码剖析处理过程
    03: 自定义异步非阻塞tornado框架
  • 原文地址:https://www.cnblogs.com/dongma/p/10002301.html
Copyright © 2011-2022 走看看