用户登录和权限认证之 —— JWT

本文介绍了用户登录和权限认证的两种方法,重点讲解了JWT(Json Web Token)的工作流程、优缺点以及如何存储和校验JWT。讨论了JWT在解决Cookie+Session扩展性问题上的优势,并通过实例解析了JWT的构成和内容。
摘要由CSDN通过智能技术生成

这里我会讲解 web 前端常用的用户登录和权限认证的方法 —— JWT,有错误希望指正


1、Cookie + Session

       在讲解 JWT 之前,我先介绍一下最简单的用户登录和权限认证方式:Cookie + Session

① 概述

       HTTP 是一种无状态的协议,客户端每次发送请求时,首先要和服务器端建立一个连接,在请求完成后又会断开这个连接。这种方式可以节省传输时占用的连接资源,但同时也存在一个问题:每次请求都是独立的,服务器端无法判断本次请求和上一次请求是否来自同一个用户,进而也就无法判断用户的登录状态。

注意:上面提到 HTTP,是无状态的,但是 HTTP2 也并不能说是有状态的。 因为 HTTP 是无状态的,所以需要 cookie 来记录一些状态。HTTP2 只是对于复用单一 TCP 连接,但是从服务器角度而言依然需要 cookie 来记录一些状态,因此并不能说 HTTP2 是有状态的。

② 流程图

在这里插入图片描述

③ 校验步骤

  1. 第一步,用户登录账号,客户端发送 POST 请求,将用户名和密码发送到服务器。
  2. 第二步,服务器会保存用户对应的 session 数据,并且保存在自己的数据库中(当然也可以保存在客户端的内存中)。
  3. 第三步,服务器返回给客户端 HTTP 200 状态码,这个时候在请求头 header 中,保存了一个 Set-Cookie: sessionid 的数据,给用户登录的 cookie设置了一个 session 的 id 值。
  4. 第四步,当客户端要获取用户信息的时候,发送 GET 请求,这个时候会自动携带上 cookie 信息,里面保存的就是 session 的 id 值。
  5. 第五步,当服务器接收到请求的时候,会查看客户端发送的请求中的 cookie 字段,并且查看服务器中是否存在该 session 的数据。
  6. 第六步
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凉爽爽爽爽爽爽爽爽爽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值