用户登录权限校验 JWT【详解】

简介: 用户登录权限校验 JWT【详解】

JWT (json web token)是当前最流行的用户登录权限校验(用户认证鉴权)方案。

官网 https://jwt.io/

JWT 的工作流程

  1. 客户端访问业务接口(如获取当前登录用户信息 user/current)时,将 token 放入 header 中传给服务端,键名为 Authorization ,值为 Bearer 后加空格再加 token。
  1. 服务端验证 token 是否正确,若正确,则将数据(如当前登录用户信息)返回给客户端。

JWT 的 token 加密原理

JWT 的 token 由三部分组成

  1. Header:JSON对象,描述 JWT 的元数据,加密算法以及类型
  2. Payload:JSON对象,存放数据需要传递的数据
  3. Signature:对前两部分的签名,防止数据篡改。需要指定一个密钥(secret)。这个密钥只有服务器才知道,不能泄露给用户。

如上图,可在官网首页中测试加密和解码 https://jwt.io/

JWT 的优点

  • token 是无状态的(stateless),服务器不需要记录任何信息,不占用内存
  • 多进程,多服务器集群没有影响,易于扩展
  • 假如不记录在 cookie 中,没有跨域的影响
  • 和服务器端解耦,任何设备都可以生成token。

JWT 的缺点

  • 无法废弃,没有办法对快速对已经登录的用户做处理。
  • 空间更大,所有数据是通过 base64进行编码的,会随着数据量的增大而变大。

提升JWT 安全性的策略

 

目录
相关文章
|
6月前
|
XML JavaScript Java
SpringBoot集成Shiro权限+Jwt认证
本文主要描述如何快速基于SpringBoot 2.5.X版本集成Shiro+JWT框架,让大家快速实现无状态登陆和接口权限认证主体框架,具体业务细节未实现,大家按照实际项目补充。
361 11
|
安全 NoSQL Java
JWT和Security 登录权限判断和token访问和让token失效
JWT和Security 登录权限判断和token访问和让token失效
|
存储 JSON 算法
SpringBoot之JWT令牌校验
SpringBoot之JWT令牌校验
|
安全 关系型数据库 MySQL
node实战——后端koa结合jwt连接mysql实现权限登录(node后端就业储备知识)
node实战——后端koa结合jwt连接mysql实现权限登录(node后端就业储备知识)
185 3
|
JSON 人工智能 算法
pyjwt,一个强大的 Python JWT解析校验库!
pyjwt,一个强大的 Python JWT解析校验库!
361 0
|
JSON 安全 关系型数据库
SpringCloud Gateway 实现自定义全局过滤器 + JWT权限验证
SpringCloud Gateway 实现自定义全局过滤器 + JWT权限验证
|
7月前
|
JSON 安全 Java
什么是JWT?如何使用Spring Boot Security实现它?
什么是JWT?如何使用Spring Boot Security实现它?
1275 5
|
11月前
|
SQL Java 测试技术
在Spring boot中 使用JWT和过滤器实现登录认证
在Spring boot中 使用JWT和过滤器实现登录认证
538 0
|
9月前
|
JSON 安全 算法
|
9月前
|
存储 安全 Java

热门文章

最新文章