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

    需要引入jwt依赖

            <dependency>
                  <groupId>com.auth0</groupId>
                  <artifactId>java-jwt</artifactId>
                  <version>3.4.0</version>
            </dependency>

    测试demo

        public static void demo() {        
            Map<String,Object> payload = new HashMap<>();
            payload.put("sub", "1234567890");
            payload.put("name", "John Doe");
            payload.put("admin", true);
            
            String result = JWT.create()
                .withClaim("sub", "1234567890")
                .withClaim("name", "John Doe")
                .withClaim("admin", true)
                .withClaim("time", "2021-03-09 18:25:00")
                .withExpiresAt(new Date()) // 实质上就是在payload中添加一个exp的时间属性
                // sign方法会根据Algorithm自动在header中添加alg与typ
                .sign(Algorithm.HMAC256("123456")); 
            System.out.println(result);
            DecodedJWT jwt = JWT.decode(result);
            System.out.println(jwt.getHeader());
            System.out.println("---------------------------------消息体");
            Map<String, Claim> claims = jwt.getClaims();
            for (String key : claims.keySet()) {
                System.out.println("key="+key+",value="+(claims.get(key).asString()==null?claims.get(key).asDate():claims.get(key).asString()));
            }
            System.out.println(jwt.getExpiresAt());
        }

    使用感觉:jwt就是一项非状态会话机制,可以将需要保存到session中的数据保存到cookie--token中,jwt就是一项防篡改的技术;

    将需要保存的数据都放入到payload中,然后使用密钥加密,当发起请求的时候,在服务器上将接收的token,将header和payload进行加密,然后和token中的加密部分进行匹对,如果对的上,就表明数据没有被篡改,否则就是被篡改过的数据

    至于token是否是在有效期,是payload中存放的一个时间属性进行判断的。

  • 相关阅读:
    Python学习笔记
    AC自动机跟随Kuangbing学习笔记
    【后缀数组】【poj2774】【 Long Long Message】
    【思路题】【多校第一场】【1001.OO’s Sequence】
    【求出所有最短路+最小割】【多校第一场】【G题】
    【后缀数组学习中】
    【关于字符串要补的题】
    49.运维6-ansible
    48.python&&django时区转化
    47.python脚本自定义token验证
  • 原文地址:https://www.cnblogs.com/TheoryDance/p/14507395.html
Copyright © 2011-2022 走看看