当前位置: 首页 > news >正文

做任务得得q币的网站创建网站花钱吗

做任务得得q币的网站,创建网站花钱吗,怀安网站制作,江华网站建设📑前言 本文主要是jwt解读文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句:努力一点&#…

📑前言

本文主要是jwt解读文章,如果有什么需要改进的地方还请大佬指出⛺️

🎬作者简介:大家好,我是青衿🥇
☁️博客首页:CSDN主页放风讲故事
🌄每日一句:努力一点,优秀一点

在这里插入图片描述

目录

文章目录

  • 📑前言
  • **目录**
    • 1、什么是jwt及其用法?
    • 2. JWT 的数据结构
      • 2.1 Header
      • 2.2 Payload(负载)
      • 2.3 Signature(签名)
    • 3.基于Token的身份认证与基于服务器的身份认证
    • 4.实际开发中的应用
  • 📑文章末尾


1、什么是jwt及其用法?

什么是JWT?JWT,全称Json Web Token,是一种基于json的开发标准,是token的一种具体实现方式。本质就是一个字符串,它是将用户信息保存到一个Json字符串中,然后进行编码后得到一个JWT token,并且这个JWT token带有签名信息,接收后可以校验是否被篡改,所以可以用于在各方之间安全地将信息作为Json对象传输。

JWT官网有一张图描述了JWT的认证过程:

在这里插入图片描述

2. JWT 的数据结构

JWT 的三个组成部分依次如下
· Header(头部)
· Payload(负载)
· Signature(签名)

2.1 Header

Header 部分是一个 JSON 对象,描述 JWT 的元数据,通常是下面的样子。
在这里插入图片描述

头部:表明是一个jwt类型的token,采取的加密方式是HS256

2.2 Payload(负载)

Payload 部分也是一个 JSON 对象,用来存放实际需要传递的数据。JWT 规定了7个官方字段,供选用。

iss (issuer):签发人
exp (expiration time):过期时间
sub (subject):主题
aud (audience):受众
nbf (Not Before):生效时间
iat (Issued At):签发时间
jti (JWT ID):编号

2.3 Signature(签名)

签名哈希部分是对上面两部分数据签名,需要使用base64编码后的header和payload数据,通过指定的算法生成哈希,以确保数据不会被篡改。首先,需要指定一个密钥(secret)。该密码仅仅为保存在服务器中,并且不能向用户公开。然后,使用header中指定的签名算法(默认情况下为HMACSHA256)根据以下公式生成签名

在这里插入图片描述

H M A C S H A 256 ( b a s e 64 U r l E n c o d e ( h e a d e r ) + " . " + b a s e 64 U r l E n c o d e ( p a y l o a d ) , s e c r e t ) HMACSHA256(base64UrlEncode(header) + “.” + base64UrlEncode(payload), secret)

在计算出签名哈希后,JWT头,有效载荷和签名哈希的三个部分组合成一个字符串,每个部分用.分隔,就构成整个JWT对象

3.基于Token的身份认证与基于服务器的身份认证

在讨论基于Token的身份认证是如何工作的以及它的好处之前,我们先来看一下以前我们是怎么做的:
HTTP协议是无状态的,也就是说,如果我们已经认证了一个用户,那么他下一次请求的时候,服务器不知道我是谁,我们必须再次认证
传统的做法是将已经认证过的用户信息存储在服务器上,比如Session。用户下次请求的时候带着SessionID,然后服务器以此检查用户是否认证过。
使用 JWT 的优势:
你不需要向传统的 Web 应用那样将用户状态保存于 Session 中。

4.实际开发中的应用

在实际的SpringBoot项目中,一般我们可以用如下流程做登录:
1.在登录验证通过后,给用户生成一个对应的随机token(注意这个token不是指jwt,可以用uuid等算法生成),然后将这个token作为key的一部分,用户信息作为value存入Redis,并设置过期时间,这个过期时间就是登录失效的时间
2.将第1步中生成的随机token作为JWT的payload生成JWT字符串返回给前端
3.前端之后每次请求都在请求头中的Authorization字段中携带JWT字符串
4.后端定义一个拦截器,每次收到前端请求时,都先从请求头中的Authorization字段中取出JWT字符串并进行验证,验证通过后解析出payload中的随机token,然后再用这个随机token得到key,从Redis中获取用户信息,如果能获取到就说明用户已经登录

📑文章末尾

在这里插入图片描述

http://www.ds6.com.cn/news/31096.html

相关文章:

  • 电子商务网站的特色免费发布信息网网站
  • html做网站经验技巧搜收录批量查询
  • php网站开发软件语言独立站seo优化
  • 高效简便的网站开发网站优化公司哪家好
  • 房地产培训网站建设搜索引擎优化排名技巧
  • 专业做招聘的网站有哪些域名whois查询
  • 青岛网信信息科技有限公司seo关键词词库
  • 做网站需要用到的符号语言免费入驻的卖货平台有哪些
  • wordpress里添加字体seo关键词排名价格
  • 微信企业号可以做微网站吗今日重大事件
  • 网站设计 电子购物网站设计全网模板建站系统
  • 网站建设应该学什么软件实体店铺引流推广方法
  • 资产管理公司网站建设费用怎么入账培训机构有哪些
  • 新郑建设局网站网站流量统计分析工具
  • 上海平台网站建设公司排名网站策划书模板
  • 手工业网站怎么做郑州网络seo公司
  • 高端建站什么意思网站关键词排名快速提升
  • 桐城网站开发sem竞价推广公司
  • 网站制作滚动图片怎么做百度一下百度搜索入口
  • 融资网站建设重点在线的crm系统软件
  • 做螺杆比较出名的网站浏览器大全
  • 一站式网站建设供应商店铺推广渠道有哪些方式
  • 做网站读什么专业自己做网站建设
  • 怎么看公司网站建设的时间北京seo外包平台
  • 品牌网站建设费用要多少网站排名优化化快排优化
  • 怎样才可以知道网站是否优化超级软文
  • 政府网站建设资质品牌广告文案
  • 网站浏览量提升谷歌引擎搜索入口
  • 公司入口网站app网站建设流程是什么
  • 做网站推广要注意什么怎么在百度上做广告