我的编程空间,编程开发者的网络收藏夹
学习永远不晚

jwt,accesstoken、refresh token详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

jwt,accesstoken、refresh token详解

jwt,accesstoken、refresh token详解

JWT(json web token)

概念

JWT定义了一种紧凑的,自包含的形式,被用作在网络中安全的传输信息
格式
例如:xxxx.yyyyyyy.zzz
根据.分割,可以得到三部分,header,payload,signature。每部分可以使用Base64解码,就是一个JSON对象。
payload中会包含当前jwt的颁发者信息,JWT有效期,用户的凭证,权限信息,和用户自定义的信息等等。由于JWT是明文信息,所以不适合将一些敏感信息保存在JWT中

流程

客户端发起请求登陆,携带用户名和密码;
服务端验证身份,根据算法,将用户标识符打包生成token
服务器返回JWT信息给游览器,JWT不包含敏感信息;
客户端发起请求获取用户资料,把刚刚拿到的token一起发送给服务器;
服务器发现数据中有token,验明正身;
服务器返回该用户的用户资料;

JWT的6个缺点

JWT默认不加密,但可以加密。生成原始令牌后,可以使用改令牌再次对其进行加密。
2、当JWT未加密方法是,一些私密数据无法通过JWT传输。
3、JWT不仅可用于认证,还可用于信息交换。善用JWT有助于减少服务器请求数据库的次数。
4、JWT的最大缺点是服务器不保存会话状态,所以在使用期间不可能取消令牌或更改令牌的权限。也就是说,一旦JWT签发,在有效期内将会一直有效。
5、JWT本身包含认证信息,因此一旦信息泄露,任何人都可以获得令牌的所有权限。为了减少盗用,JWT的有效期不宜设置太长。对于某些重要操作,用户在使用时应该每次都进行进行身份验证。
6、为了减少盗用和窃取,JWT不建议使用HTTP协议来传输代码,而是使用加密的HTTPS协议进行传输。

安全在哪体现

JWT的安全性,说的是自身信息是防篡改,体现在它的签名部分signature。我们可以在生成JWT的时候,使用数字证书进行签名,采用非对称加密,可以很大程度的保证JWT的安全性。JWT默认是非加密的。
但是,JWT一经颁发,将无法回收,如果发生泄漏,将无法组织,这也是众所周知的JWT最大的问题。
JWT也是客服端-服务器在用户身份信息认证使用token形式的一种体现。jwt将用户身份信息认证保存在客户端,服务端也就不用维护用户状态,大大减轻了服务器的压力。客户端每次请求中,只需要携带这个JWT信息,
服务器根据JWT信息进行身份认证即可。

OAuth2(认证)

由上述可知,JWT存在颁发不可回收问题。如果JWT信息发生泄漏,就可以凭借此信息一直访问服务器信息,
只有等到JWT自动过期,用户的信息才会失效。
那么我们怎么维护用户身份信息呢?
我们可能最先想到,使用Redis(数据库)保存JWT信息,将信息维护服务器。
如果我们真的使用这种方式,那不就又回到了最初的使用服务端保存token的方式了吗?那这个JWT还有存在的必要吗?
第二种方式,我们尽可能短的设置JWT的有效时间,那么,就算用户的JWT信息泄漏了,对系统的访问时间也就尽可能的短了。
而在OAuth2中提出了access_token和refresh_token这两个概念
access_token
用于在客户端的一般请求中,使用此JWT信息验证用户身份。它的有效期通常设置的很短。
refresh_token
用于在access_token失效时,交换新的access_token。

基本流程

客户端向从资源所有者请求授权。
客户端收到授权许可,资源所有者给客户端颁发授权许可(比如授权码code)
客户端与授权服务器进行身份认证并出示授权许可(比如授权码code)请求访问令牌。
授权服务器验证客户端身份并验证授权许可,若有效则颁发访问令牌(accept token)。
客户端从资源服务器请求受保护资源并出示访问令牌(accept token)进行身份验证。
资源服务器验证访问令牌(accept token),若有效则满足该请求。

图解

在这里插入图片描述

来源地址:https://blog.csdn.net/qq_37704442/article/details/129210122

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

jwt,accesstoken、refresh token详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JWT Json Web Token全面详解

这篇文章主要为大家介绍了JWT Json Web Token全面详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
2022-11-13

详解JWT与Token的应用与原理

这篇文章主要介绍了详解JWT与Token的应用与原理,JWT全称“JSONWebToken”,是实现Token的机制,需要的朋友可以参考下
2023-05-16

详解ASP.NET Core Web Api之JWT刷新Token

前言 如题,本节我们进入JWT最后一节内容,JWT本质上就是从身份认证服务器获取访问令牌,继而对于用户后续可访问受保护资源,但是关键问题是:访问令牌的生命周期到底设置成多久呢?见过一些使用JWT的童鞋会将JWT过期时间设置成很长,有的几个小
2022-06-07

jwt怎么解决刷新token

JWT(JSON Web Token)是一种用于身份验证的开放标准。它由三个部分组成:头部、载荷和签名。在实现JWT刷新令牌的功能时,可以采取以下步骤:1. 在JWT中,载荷(payload)部分可以包含过期时间(exp)字段,用于指定令牌
2023-09-29

asp.net core 中的Jwt(Json Web Token)的使用详解

session不支持分布式并且在服务器存储一份用户登录的信息,这份登录信息会在响应时传递给浏览器,告诉其保存为cookie,以便下次请求时发送给我们的应用,这篇文章主要介绍了asp.net core 中的Jwt(Json Web Token)的使用,需要的朋友可以参考下
2022-11-13

JWT设置token过期时间无效怎么解决

这篇文章主要介绍了JWT设置token过期时间无效怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JWT设置token过期时间无效怎么解决文章都会有所收获,下面我们一起来看看吧。JWT 设置token过期
2023-07-02

cookie,session和token详解

文章目录 前言一、cookie1.1 cookie简介1.2 cookie作用 二、session2.1 session简介2.2 session作用 三、token3.1 token简介3.2 token作用 四、区别
2023-08-20

SpringBoot2如何整合JWT框架解决Token跨域验证问题

小编给大家分享一下SpringBoot2如何整合JWT框架解决Token跨域验证问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、传统Session认证1、认
2023-06-02

如何解决使用JWT作为Spring Security OAuth2的token存储问题

小编给大家分享一下如何解决使用JWT作为Spring Security OAuth2的token存储问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!序Spring Security OAuth3的demo在前几篇文章中已
2023-06-22

Golang token的生成和解析详解

Golang令牌生成与解析详解Golang令牌用于验证用户身份,生成和解析令牌是安全开发的关键。生成令牌:使用github.com/golang-jwt/jwt库。创建jwt.Token结构并设置声明。使用密钥签名令牌以确保完整性和真实性。解析令牌:使用github.com/golang-jwt/jwt库。提供令牌字符串和验证密钥。解析后可获取令牌声明和信息。最佳实践:使用强签名密钥。设置令牌过期时间。通过HTTPS传输令牌。定期吊销和轮换令牌。
Golang token的生成和解析详解
2024-04-02

编程热搜

目录