【笔记】Web身份认证

前言

Web身份认证

通过Cookie和Session进行身份认证

  1. 首次登录请求完成后,服务端将用户登录状态以Session的形式存储到服务器内存中
  2. 服务器将Session的键以响应的形式发送给客户端
  3. 客户端得到服务器中存储的Session的键之后,将Session的键存储到浏览器的Cookie中
  4. 以后每次向服务器发送请求时,都在请求头中携带该Cookie作为当前登录这的身份

<session>:服务端存储的Session的键

1
2
3
4
5
POST http://127.0.0.1:80/api/item
Content-Type: application/json
Cookie: <session>

{}

通过Authentication进行身份认证

Basic

  1. 无论是否登录,每次向服务器发送请求时,都在请求头中携带AES加密后的用户名:密码作为Authorization
  • 在Basic方式下,Authorization的值必须以Basic

在请求头中的Base64编码数据应该保留=而不是进行URL编码

Base64(<username>:<password>):Base64编码后的用户名和密码,用户名和密码之间用:分隔

1
2
GET http://127.0.0.1:80/
Authorization: Basic Base64(<username>:<password>)

Bearer

  1. 在首次登录请求完成后,服务端将用户登录状态编码成Token
  2. 服务器将Token以响应的形式发送给客户端
  3. 客户端得到Token后存储到LocalStorage中
  4. 以后每次向服务器发送请求时,都在请求头中携带Token作为Authorization
  • 在Bearer方式下,Authorization的值必须以Bearer
  • JWT是Bearer方式最常见的一种实现方式

<token>:服务端身份认证后返回的token

1
2
GET http://127.0.0.1:80/
Authorization: Bearer <token>

完成

参考文献

哔哩哔哩——free-coder