Access Token 和 Refresh Token 的工作原理

发布: (2026年3月1日 GMT+8 03:46)
4 分钟阅读
原文: Dev.to

Source: Dev.to

封面图片:访问令牌和刷新令牌的工作原理

简单登录流程

令牌在服务器之间的签发和使用方式

  1. 你请求 “使用 Google 登录”。
  2. 应用重定向到 授权服务器(Google),该服务器对你进行身份验证并返回一个 授权码
  3. 应用使用该代码换取 访问令牌(以及 刷新令牌)。
  4. 应用使用访问令牌代表你调用 资源服务器

授权服务器负责 你是谁;资源服务器负责 你可以做什么

访问令牌

把访问令牌想象成每日通行证。每一次对资源服务器的请求都要携带此令牌,服务器在响应前会对其进行验证。

  • 短期有效 – 通常是几分钟到几小时。
  • 频繁暴露 – 几乎随每个请求一起传输,短生命周期可以限制被拦截后的危害。

如果访问令牌的有效期很长,将会是安全噩梦,因为攻击者可以在较长时间内使用它。

刷新令牌

当访问令牌过期时,应用会悄悄使用 刷新令牌 向授权服务器获取新的访问令牌——无需用户交互。

  • 长期有效 – 天、周,甚至月。
  • 很少传输 – 只发送给授权服务器,绝不发送给资源服务器。
  • 用途专一 – 仅用于获取新的访问令牌。

这种分离让刷新令牌更安全,并且在需要时更容易撤销。

快速对比

快速对比

方面访问令牌刷新令牌
有效期分钟到小时天到月
暴露程度随每个 API 请求一起发送仅发送给授权服务器
用途授权资源访问获取新的访问令牌
撤销方式通常短期有效,影响较小可在中心位置撤销

为什么不使用单一令牌?

如果使用一个长期有效的单一令牌并在每次请求中发送,它将是 安全灾难。一旦被窃取,攻击者就能在很长时间内拥有不受限制的访问权限。将职责拆分:

  • 访问令牌 – 短期有效,降低暴露风险。
  • 刷新令牌 – 长期有效,暴露少,易于撤销。

参考文献与进一步阅读

0 浏览
Back to Blog

相关文章

阅读更多 »

冲刺

!Sprint: Express 无需重复代码 https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9mcbu1c3wuvlq0tiuup0.png 介绍 Sprint:停止重复代码