JWT入门

JWT入门

1.JWT是什么

JWT(json web Tokens)简称jwt

JSON Web Token简称JWT,用于对应用程序上用户进行身份验证的标记。使用 JWTS 之后不需要保存用户的 cookie 或其他session数据,同时可保证应用程序的安全。

用于跨域身份验证解决方案

1.1组成部分

JWT是经过加密处理与校验处理的字符串,形式为:A.B.C

  1. –A由JWT头部信息header加密得到
  2. –B由JWT用到的身份验证信息JSON数据加密得到
  3. –C由A和B加密得到,是校验部分
  4. –官方测试网站: https://jwt.io/

1.2JWT的使用场景和优势

  • 身份验证和授权‌:JWT可以用于在用户登录后生成一个令牌(token),并在后续请求中携带该令牌以证明用户身份。
  • 跨域认证‌:由于JWT是一种基于JSON的标准,它可以轻松地在不同的域之间传递信息。
  • 安全性‌:通过数字签名,JWT可以防止篡改,确保数据的安全性和完整性。
  • 无状态‌:服务器不需要保存用户的会话状态,减轻服务器负担,提高可扩展性。
  • 灵活性‌:JWT可以轻松地添加到HTTP请求头中,适用于‌[RESTful API](https://www.baidu.com/s?tn=25017023_19_pg&ch=2&usm=1&wd=RESTful API&ie=utf-8&rsv_pq=dcbf04c20004cd21&oq=jwt是什么&rsv_t=796f9dzzvFOThIW%2BKxXS3dIVVKomRt07Yob7ZzYXPFAXBF1Xt0HcWL8CHVt1OnnqrUIiG3U&sa=re_dqa_generate)和其他基于HTTP的服务。

1.3jwt流程图

在这里插入图片描述

(此图来源于网上)

2.jwt的代码实现

2.1来自于官网的直观演示

在这里插入图片描述

红色的就是代表header(头部)

1.这里声明的类型为jwt

2.声明了加密算法

紫色部分代表的就是你实际的数据playload(载荷)

这里要将其进行base64加密

蓝色部分代表的是signature(签证信息)

2.2代码实现

public void testCreateToken() {
   
    //生成token
    //1、准备数据
    Map map = new HashMap();
    map.put("id",1);
    map.put("mobile","13800138000");
    //2、使用JWT的工具类生成token
    long now = System.currentTimeMillis();
    String  token = Jwts.builder()
            .signWith(SignatureAlgorithm.HS512, "itcast") //设置秘钥
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值