返回顶部
首页 > 资讯 > 服务器 >jwt,accesstoken、refresh token详解
  • 811
分享到

jwt,accesstoken、refresh token详解

服务器运维 2023-09-06 07:09:03 811人浏览 泡泡鱼
摘要

Jwt,accesstoken、refresh token详解 JWT(JSON WEB token) 概念 JWT定义了一种紧凑的,自包含的形式,被用作在网络中安全的传输信息 格式 例如:xxxx.

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

--结束END--

本文标题: jwt,accesstoken、refresh token详解

本文链接: https://lsjlt.com/news/396653.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • jwt,accesstoken、refresh token详解
    jwt,accesstoken、refresh token详解 JWT(json web token) 概念 JWT定义了一种紧凑的,自包含的形式,被用作在网络中安全的传输信息 格式 例如:xxxx....
    99+
    2023-09-06
    服务器 运维
  • JWT Json Web Token全面详解
    目录概述应用场景JWT认证过程JWT的数据结构headerpayloadsignatureJWT的用法JWT的优缺点概述 最近学习了一下JWT,全名为Json Web Token,是...
    99+
    2022-11-13
    JWT Json Web Token Json Web Token
  • token与JWT详细介绍
    token介绍 Token 的中文意思是"令牌"。主要用来身份验证。比传统的身份验证方法,Token 有扩展性强,安全性高的特点,非常适合用在 Web 应用或者移动应用上。 它是服务端生成的字符串,作为客户端进行请求的一个标识。 token...
    99+
    2023-08-31
    java
  • 详解ASP.NET Core Web Api之JWT刷新Token
    前言 如题,本节我们进入JWT最后一节内容,JWT本质上就是从身份认证服务器获取访问令牌,继而对于用户后续可访问受保护资源,但是关键问题是:访问令牌的生命周期到底设置成多久呢?...
    99+
    2022-06-07
    Web token net ASP.NET core jwt api ASP
  • 详解JWT与Token的应用与原理
    目录JWT的应用Token的组成原理JWT对称加密JWT非对称加密生成私钥和公钥前言:JWT全称“JSON Web Token”,是实现Token的机制。官网...
    99+
    2023-05-16
    JWT应用与原理 Token应用与原理
  • jwt怎么解决刷新token
    JWT(JSON Web Token)是一种用于身份验证的开放标准。它由三个部分组成:头部、载荷和签名。在实现JWT刷新令牌的功能时...
    99+
    2023-09-29
    jwt
  • thinkphp6 (JWT)token生成与解密
    安装 首先在框架中安装JWT:composer require firebase/php-jwt 安装后在tp框架中或者框架中的模块新建一个目录 目录里新建一个类文件 如: 以下是代码(写入新建的token类文件): ...
    99+
    2023-08-31
    php 开发语言
  • asp.net core 中的Jwt(Json Web Token)的使用详解
    简单描述: session不支持 分布式 并且在服务器存储一份用户登录的信息,这份登录信息会在响应时传递给浏览器,告诉其保存为cookie,以便下次请求时发送给我们的应用 Jwt描述...
    99+
    2022-11-13
    asp.net core  Jwt使用 asp.net core Jwt
  • JWT Token 在线解析和解码工具
    JWT (JSON Web Token) 是一种用于在网络应用间传递信息的开放标准。它由三部分组成:头部(header)、载荷(payload)和签名(signature)。头部包含了描述 JWT 的...
    99+
    2023-10-20
    前端 javascript 开发语言
  • TP6 使用jwt生成token加密解密
    第一步,需要安装TP6框架,如果没有安装我给你一个composer composer create-project topthink/think tp 第二步,需要安装一个PHP的jwt插件,也使用composer composer req...
    99+
    2023-09-05
    php java 开发语言
  • vue中使用jwt-decode解析token的方法
    安装: cnpm i -S jwt-decode 引入: import jwt_decode from "jwt-decode"; 使用: import jwt_decode f...
    99+
    2024-04-02
  • JWT设置token过期时间无效的解决
    目录JWT 设置token过期时间无效原因原因分析JWT token过期自动续期解决方案JWTtokentoken过期刷新方案JWT 设置token过期时间无效 原因 设置超时时间的...
    99+
    2024-04-02
  • JWT设置token过期时间无效怎么解决
    这篇文章主要介绍了JWT设置token过期时间无效怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JWT设置token过期时间无效怎么解决文章都会有所收获,下面我们一起来看看吧。JWT 设置token过期...
    99+
    2023-07-02
  • SpringBoot整合JWT框架,解决Token跨域验证问题
    目录一、传统Session认证  1、认证过程2、存在问题二、JWT简介  1、认证流程2、JWT结构说明 3、JWT使用方式 三、与SpringBoot2整合&...
    99+
    2024-04-02
  • cookie,session和token详解
    文章目录 前言一、cookie1.1 cookie简介1.2 cookie作用 二、session2.1 session简介2.2 session作用 三、token3.1 token简介3.2 token作用 四、区别...
    99+
    2023-08-20
    服务器 前端 java
  • Go语言如何使用golang-jwt/jwt/v4进行JWT鉴权详解
    目录前言1.什么是JWT2.JWT的数据结构2.1 Header2.2 Payload2.3 Signature2.4 Base64URL3使用JWT安装生成Token总结前言 最近...
    99+
    2024-04-02
  • SpringBoot2如何整合JWT框架解决Token跨域验证问题
    小编给大家分享一下SpringBoot2如何整合JWT框架解决Token跨域验证问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、传统Session认证1、认...
    99+
    2023-06-02
  • SpringBoot详解整合JWT教程
    目录1、概述2、优势所在3、结构组成3.1、标头(Header)3.2、有效负载(Payload)3.3、签名(Signature)4、Spring boot整合JWT 导入依赖1、...
    99+
    2024-04-02
  • 如何解决使用JWT作为Spring Security OAuth2的token存储问题
    小编给大家分享一下如何解决使用JWT作为Spring Security OAuth2的token存储问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!序Spring Security OAuth3的de...
    99+
    2023-06-22
  • Python JWT 介绍和使用详解
    1. JWT 介绍 ​jwt( JSON Web Tokens ),是一种开发的行业标准 RFC 7519 ,用于安全的表示双方之间的声明。目前,jwt广泛应用在系统的用户认证方面,特别是现在前后端分离项...
    99+
    2022-06-02
    Python JWT使用 Python JWT
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作