JWT身份认证机制原理与实现
需积分: 0 140 浏览量
更新于2024-08-05
收藏 1.68MB PDF 举报
JWT学习笔记
背景了解户身份认证的种式,主要有两种:Session验证和Token验证。
**Session验证**
Session验证是传统的身份认证方式。其流程如下:
1. 客户端使用用户名和密码请求登录。
2. 服务端接收请求,验证信息,成功后,在当前对话(session)保存相关数据,如用户信息、登录时间等。
3. 服务器向用户返回一个session_id,写入客户端的Cookie。
4.往后客户端每次向服务端请求资源时,都会通过Cookie,将session_id传回服务器。
5. 服务端收到session_id,找到前期保存的数据,由此得知用户的身份,如果验证成功,正常返回客户端响应数据。
Session验证的特点是:
* 数据存放在服务器端
* 服务器端资源开销大
* 存储时间短,需要服务器设置
* 服务器如果挂掉了需要重新登录
**Token验证**
Token验证是另一种身份认证方式。其流程如下:
1. 客户端使用用户名和密码请求登录。
2. 服务端接收请求,验证信息,成功后,服务端返回一个token。
3. 客户端收到token后可以将其存储起来,例如Cookie或localStorage。
4.往后客户端每次向服务端请求资源时都需要携带这个token,可以通过Cookie或者header携带。
5. 服务端接收请求,验证token,如果验证成功,正常返回客户端响应数据。
Token验证的特点是:
* 节约服务器资源
* CPU消耗大
**JWT(JSON Web Token)**
JWT是Token验证的一种具体实现方式。其工作原理是:
用户的信息通过Token字符串的形式,保存在客户端浏览器中,服务器通过还原Token字符串的形式来认证用户的身份。Token字符串通常由三部分组成:Header(头部)、Payload(有效荷载)、Signature(签名)。其中Payload是真正的用户信息,加密后的字符串;Header和Signature是安全相关的部分,保证Token的安全性。
使用JWT的方式是:
* 客户端收到服务器返回的JWT后,通常会将它存储在localStorage或sessionStorage中。
* 此后,客户端每次与服务端通信,都要带上这个JWT的字符串,从而进行身份认证。
推荐的做法是把JWT放在HTTP请求头的Authorization字段中,格式如下:
Authorization:Bearer <JWT字符串>
总结来说,Session验证和Token验证是两种不同的身份认证方式,Session验证数据存放在服务器端,Token验证数据存放在客户端。JWT是Token验证的一种具体实现方式,使用Token字符串来认证用户的身份。
2022-01-21 上传
2022-12-13 上传
2008-06-06 上传
2021-10-22 上传
2021-03-26 上传
2021-02-23 上传
2021-05-03 上传
2024-07-08 上传
2021-12-31 上传
王元祺
- 粉丝: 520
- 资源: 303
最新资源
- 开源通讯录备份系统项目,易于复刻与扩展
- 探索NX二次开发:UF_DRF_ask_id_symbol_geometry函数详解
- Vuex使用教程:详细资料包解析与实践
- 汉印A300蓝牙打印机安卓App开发教程与资源
- kkFileView 4.4.0-beta版:Windows下的解压缩文件预览器
- ChatGPT对战Bard:一场AI的深度测评与比较
- 稳定版MySQL连接Java的驱动包MySQL Connector/J 5.1.38发布
- Zabbix监控系统离线安装包下载指南
- JavaScript Promise代码解析与应用
- 基于JAVA和SQL的离散数学题库管理系统开发与应用
- 竞赛项目申报系统:SpringBoot与Vue.js结合毕业设计
- JAVA+SQL打造离散数学题库管理系统:源代码与文档全览
- C#代码实现装箱与转换的详细解析
- 利用ChatGPT深入了解行业的快速方法论
- C语言链表操作实战解析与代码示例
- 大学生选修选课系统设计与实现:源码及数据库架构