ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第二十六章 登录检验解决⽅案 JWT

2022-01-27 23:07:32  阅读:101  来源: 互联网

标签:存储 登录 JWT token 第二十六章 服务端 客户端


  • 单机tomcat应⽤登录检验
    • sesssion保存在浏览器和应⽤服务器会话之间
    • ⽤户登录成功,服务端会保存⼀个session,当然客户端有⼀个sessionId
    • 客户端会把sessionId保存在cookie中,每次请求都会携带这个sessionId
  • 分布式应⽤中session共享
  • 真实的应⽤不可能单节点部署,所以就有个多节点登录session共享的问题需要解决
  • tomcat⽀持session共享,但是有⼴播⻛暴;⽤户量⼤的时候,占⽤资源就严重,不推荐
  • 使⽤redis存储token
    • 服务端使⽤UUID⽣成随机64位或者128位token,放⼊redis中,然后返回给客户端并存储在cookie中
    • ⽤户每次访问都携带此token,服务端去redis中校验是否有此⽤户即可
  • 什么是JWT
    • JWT 是⼀个开放标准,它定义了⼀种⽤于简洁,⾃包含的⽤于通信双⽅之间以 JSON 对象的形式安全传递信息的⽅法。 可以使⽤ HMAC 算法或者是 RSA 的公钥密钥对进⾏签名
    • 简单来说: 就是通过⼀定规范来⽣成token,然后可以通过解密算法逆向解密token,这样就可以获取⽤户信息
    • 优点
      • ⽣产的token可以包含基本信息,⽐如id、⽤户昵称、头像等信息,避免再次查库
      • 存储在客户端,不占⽤服务端的内存资源
    • 缺点
      • token是经过base64编码,所以可以解码,因此token加密前的对象不应该包含敏感信息,如⽤户权限,密码等
      • 如果没有服务端存储,则不能做登录失效处理,除⾮服务端改秘钥
  • JWT格式组成 头部、负载、签名
    • header+payload+signature
      • 头部:主要是描述签名算法
      • 负载:主要描述是加密对象的信息,如⽤户的id等,也可以加些规范⾥⾯的东⻄,如iss签发者,exp 过期时间,sub ⾯向的⽤户
      • 签名:主要是把前⾯两部分进⾏加密,防⽌别⼈拿到token进⾏base解密后篡改token
    • 关于jwt客户端存储
      • 可以存储在cookie,localstorage和sessionStorage⾥⾯

登录校验Json Web Token实战之封装通⽤⽅法

  • 加⼊相关依赖
    在这里插入图片描述
  • 封装⽣产token⽅法
    在这里插入图片描述
  • 封装校验token⽅法
    在这里插入图片描述

标签:存储,登录,JWT,token,第二十六章,服务端,客户端
来源: https://blog.csdn.net/qq_15906903/article/details/122724759

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有