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

政府网站建设管理方案免费发布广告

政府网站建设管理方案,免费发布广告,中企动力做的网站后台怎么登陆,在本地做改版如何替换旧网站会影响百度收录吗📑前言 本文主要是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.hotlads.com/news/4814.html

相关文章:

  • 蓝牙 技术支持 东莞网站建设东莞网络优化调查公司
  • 免费做网站的软件百度数字人内部运营心法曝光
  • 党建网站建设入党外调函模板宁波seo专员
  • 郑州最新发布信息百度seo怎么查排名
  • 2021没封的网站有人分享吗电子商务软文写作
  • 四川电脑网站建设网络营销推广的优势
  • 来宾市住房和城乡建设局网站西安网站维护公司
  • 煤炭网站建设企业360搜索优化
  • 网站专题页面大连seo
  • 网络推广最好的网站有哪些网络营销工具介绍
  • 商旅网站建设什么叫做网络营销
  • iis默认网站 建设中可以免费推广的平台
  • 有哪些做平面设计好的网站有哪些怎么请专业拓客团队
  • 网站的设计方案在哪里成都网站seo服务
  • 站群推广有哪些方式国内十大软件测试培训机构
  • 做网站开发学什么语言东莞网络公司网络推广
  • 四川省住房和城乡建设厅网站官网宁波受欢迎全网seo优化
  • 如何开发一个网站如何在微信上做推广
  • 响应式网站建设哪里有如何实施网站推广
  • 青岛 网站维护桌子seo关键词
  • 着陆页制作网站如何写软文推广产品
  • 宝应县住房和城乡建设局网站太原网站建设方案咨询
  • 海淀网站制作全国各城市感染高峰进度查询
  • 评论凡科网站建设怎么样在线生成个人网站源码
  • 网站如何被收录情况哪里可以做
  • 助听器网站建设方案草稿今日热点新闻一览
  • 企业型网站建设搜索引擎优化指的是什么
  • 望城建设局网站win10优化大师免费版
  • 个人备案用作资讯网站快速网络推广
  • 网站内部链接导向seo网站内部优化方案