首页 > 其他分享 >4.JWT入门案例

4.JWT入门案例

时间:2022-10-30 11:56:32浏览次数:53  
标签:加密 入门 JWT System 案例 token println String

JWT入门案例

一、简介

JSON Web token简称JWT, 是用于对应用程序上的用户进行身份验证的标记。也就是说, 使用 JWTS 的应用程序不再需要保存有关其用户的 cookie 或其他session数据。此特性便于可伸缩性, 同时保证应用程序的安全

二、格式

  • JWT就是一个字符串,经过加密处理与校验处理的字符串,形式为:A.B.C
  • A由JWT头部信息header加密得到
  • B由JWT用到的身份验证信息json数据加密得到
  • C由A和B加密得到,是校验部分

三、代码实现

3.1引入依赖

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

3.2生成token

  /**
     * 生成token
     */
    @Test
    public void createToken(){
        //1.准备数据
        Map<String,Object> shuiaGe = new HashedMap();
        shuiaGe.put("id",19040123);
        shuiaGe.put("phoneNumber","18177760987");
        //2.利用JWT工具类生成token

        long nowTime = System.currentTimeMillis();
        String token = Jwts.builder()
                .signWith(SignatureAlgorithm.HS512, "ZhangDaShuaiGe")//指定加密算法和秘钥
                .setClaims(shuiaGe)//要加密处理的数据
                .setExpiration(new Date(nowTime + 5000))//失效时间
                .compact();

        System.out.println(token);
    }

3.3解析token

 /**
     * 解析token
     */
    @Test
    public  void parseToken (){

        //1.要解析的token
        String tokrn = "eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE2NjU2NTA2NDcsInBob25lTnVtYmVyIjoiMTgxNzc3NjA5ODciLCJpZCI6MTkwNDAxMjN9.rkfsdgDy8ezCNvcCT-QjhlHLPe1_6TNJx_CZMGkUKXm03y6yYOG5jS292__13yb9sLltzIu9voxtIwPa2l4bkA";


        try {
            //2.利用JWT工具类解析token
            Claims zhangDaShuaiGe = Jwts.parser()
                    .setSigningKey("ZhangDaShuaiGe")//秘钥
                    .parseClaimsJws(tokrn)//要解析的token
                    .getBody();
            Object id = zhangDaShuaiGe.get("id");
            String  phoneNumber = (String) zhangDaShuaiGe.get("phoneNumber" );

            System.out.println(id+":"+phoneNumber);
        } catch (ExpiredJwtException e) {
            System.out.println("token已过期");
        }  catch (SignatureException e) {
            System.out.println("token不合理");
        }

    }

标签:加密,入门,JWT,System,案例,token,println,String
From: https://www.cnblogs.com/zhangdashuaige/p/16840871.html

相关文章

  • K8S入门篇-权限控制管理
    一、RBAC-基于角色的权限控制  范例1:聚合的权限 Aggregate创建一个clusterrolekind:ClusterRoleapiVersion:rbac.authorization.k8s.io/v1metadata:name:......
  • 【现代简约风格装修案例】诠释不一样的简单 !
    在设计行业中“简约”无处不在,无不显示它巨大的影响力和感染力。简约必然是将具象的元素进行概括,是高度抽象,更适合人们展开想象的翅膀。而抽象的简约之美,最时尚的也是最简约......
  • DOM的Node对象和案例4动态表格添加
    DOM的Node对象Node:节点对象,其他5个的父对象特点:所有dom对象都可以被认为是一个节点方法:CRUDdom树:appendChild():向节点的子节点列表的......
  • IDL入门学习教程
    IDL介绍——什么是IDL?InteractiveDataIanguage(交互式数据语言)第四代计算机语言跨平台应用开发科学数据分析可视化表达背景ExelisVisualInformationSolutions......
  • Javaweb基础复习------Filter相关应用+登录验证案例的使用
    Filter(过滤器)基本步骤:1、定义类,实现Filter接口,并重写其所有方法2、配置Filter拦截资源的路径,在类上定义2WebFilter注解(WebFilter配置的路径,是拦截资源的路径)3、在d......
  • Vue router简单配置入门案例
    { 注意驼峰命名法,不然会报错  }   1.在Views文件夹下创建Vue路由文件,例如:<template></template> <script></script> template:表示html结构区域,scri......
  • 验证码案例的实现---MyBatis+Session+Cookie
    展示验证码(jsp页面)首先,我们需要自己利用BufferedImage类去生成一张可以变换的验证码图片;之后,我们就可以利用这样一串代码去将验证码里面的内容获取到:这是一串测试代码:O......
  • C语言之入门讲解
    目录1C语言基础讲解1.1C语言历史1.2C语言特点1.3C语言程序结构1.3.1简单示例1.3.2编译&执行C程序2数据类型2.1概述2.2标识符2.3数据类型2.3.1整数类型2.3.2......
  • C# RulesEngine 规则引擎:从入门到看懵
    C#RulesEngine规则引擎:从入门到看懵  目录说明安装怎么使用多参数全局参数、本地参数全局参数本地参数定义验证成功、失败行为计算折扣使用自定义......
  • Javaweb基础复习------Cookie+Session案例的实现(登录注册案例)
    Cookie对象的创建--Cookiecookie=newCookie("key","value");发送Cookie:resp.addCookie();获取Cookie数据:req.getCookie("","");Cookie不能直接存储中文需要进行转......