【笔记】Web身份认证

前言

Web身份认证

通过Cookie和Session进行身份认证

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

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

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

{}

通过Authentication进行身份认证

Basic方式

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

AES(<username>:<password>):AES加密后的用户名和密码

1
2
3
4
5
POST http://localhost:80/api/item
Content-Type: application/json
Authorization: Basic AES(<username>:<password>)

{}

Bearer方式

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

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

1
2
3
4
5
POST http://localhost:80/api/item
Content-Type: application/json
Authorization: Bearer <token>

{}

完成

参考文献

哔哩哔哩——free-coder