用户登录权限校验 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 安全性的策略

 

目录
相关文章
|
4天前
|
安全 NoSQL Java
JWT和Security 登录权限判断和token访问和让token失效
JWT和Security 登录权限判断和token访问和让token失效
|
2月前
|
存储 JSON 算法
SpringBoot之JWT令牌校验
SpringBoot之JWT令牌校验
71 2
|
2月前
|
安全 关系型数据库 MySQL
node实战——后端koa结合jwt连接mysql实现权限登录(node后端就业储备知识)
node实战——后端koa结合jwt连接mysql实现权限登录(node后端就业储备知识)
47 3
|
2月前
SpringBoot_JWT用户登录
SpringBoot_JWT用户登录
35 0
|
2月前
|
JSON 人工智能 算法
pyjwt,一个强大的 Python JWT解析校验库!
pyjwt,一个强大的 Python JWT解析校验库!
56 0
|
2月前
|
JSON 安全 关系型数据库
SpringCloud Gateway 实现自定义全局过滤器 + JWT权限验证
SpringCloud Gateway 实现自定义全局过滤器 + JWT权限验证
|
2月前
|
JSON 安全 网络安全
超详细的用户认证、权限、安全原理详解(认证、权限、JWT、RFC 7235、HTTPS、HSTS、PC端、服务端、移动端、第三方认证等等)
超详细的用户认证、权限、安全原理详解(认证、权限、JWT、RFC 7235、HTTPS、HSTS、PC端、服务端、移动端、第三方认证等等)
512 0
|
2月前
|
JSON 安全 Java
Springboot最全权限集成Redis-前后端分离-springsecurity-jwt-Token5
Springboot最全权限集成Redis-前后端分离-springsecurity-jwt-Token5
|
2月前
|
JSON 算法 数据安全/隐私保护
【工程构建】权限认证 JWT
【1月更文挑战第13天】【工程构建】权限认证 JWT
|
2月前
|
存储 JSON 算法
登录认证-登录校验-会话技术方案选择和对比(cookie、session和JWT令牌)
登录认证-登录校验-会话技术方案选择和对比(cookie、session和JWT令牌)