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中存放的一个时间属性进行判断的。

  • 相关阅读:
    值得学习的C语言开源项目
    iOS – 使用UINib加载xib文件实现UITableViewCell
    iOS – 滚动视图(UIScrollView)详解
    oracle的体系结构之网络配置和登录验证(四)
    oracle的体系结构之存储结构(三)
    oracle的体系结构之权限管理和用户schema(二)
    oracle的体系结构之基本概念(一)
    C++ 闭包(closure)
    C++ Lambda 表达式
    C++ 类成员的构造和析构顺序
  • 原文地址:https://www.cnblogs.com/TheoryDance/p/14507395.html
Copyright © 2011-2022 走看看