基于 Cookie 的身份验证机制是如何工作的?

更新于 2026-01-06

pllx 2015-08-26

步骤 1:客户端 > 用户注册

在一切开始之前,用户需要先注册。客户端向服务器发送一个包含用户名和密码的 HTTP 请求。

步骤 2:服务器 > 处理注册

服务器接收到该请求后,会对密码进行哈希处理,然后将用户名和哈希后的密码存储到数据库中。这样,即使有人获取了你的数据库,也无法看到用户的真实密码。

步骤 3:客户端 > 用户登录

现在用户尝试登录。他们提供自己的用户名和密码,并再次通过 HTTP 请求将其发送到服务器。

步骤 4:服务器 > 验证登录信息

服务器在数据库中查找该用户名,对用户提交的登录密码进行哈希处理,并与数据库中已存储的哈希密码进行比对。如果两者不匹配,服务器将返回 401 状态码并终止此次请求,拒绝用户访问。

步骤 5:服务器 > 生成访问令牌(Access Token)

如果验证成功,服务器将创建一个访问令牌(access token),用于唯一标识该用户的会话。此时,服务器会执行以下两个操作:

  • 将该访问令牌存储在数据库中,并与对应用户关联;
  • 将该令牌附加到响应的 Cookie 中,返回给客户端。同时,应为 Cookie 设置过期时间,以限制用户会话的有效期。

此后,该 Cookie 会在客户端与服务器之间的每次请求(及响应)中自动附带。

步骤 6:客户端 > 发起页面请求

回到客户端,此时用户已成功登录。每当客户端请求一个需要身份验证的页面(即要求用户必须处于登录状态)时,服务器会从 Cookie 中提取访问令牌,并与数据库中该用户关联的令牌进行比对。如果验证通过,就允许访问。

以上就是基于 Cookie 的身份验证的基本流程。请务必在用户登出(logout)时清除相关 Cookie!