← [ BACK_TO_NOTES ]

Access Token

Access Token 是客户端在受保护 API 请求中携带的短期访问凭证;它描述的是凭证角色,不限定必须使用 JWT,也不等于完整的资源级授权结果。

#concept #growing #security #backend #http

[!info] related notes

Access Token

一句话定义

Access Token 是调用受保护资源时携带的访问凭证。它通常生命周期较短、使用频率高,用来让 Resource Server 建立调用方身份与一部分授权上下文。

它是“角色”,不是格式

Access Token
= 这个凭证拿来访问 API

JWT / opaque string
= 这个凭证采用什么表示方式

所以 Access Token 可以是 JWT,也可以是不透明随机字符串。JWT 并不天然等于 Access Token,Refresh Token 也不要求使用 JWT。

典型请求链

Client
  │ Authorization: Bearer <access-token>
  ▼
Resource Server
  │
  ├─ 验证凭证真实性/有效期
  ├─ 建立 principal
  └─ 执行业务授权

如果 Access Token 是自包含且可本地验证的 JWT,Resource Server 可以只验证签名、exp、iss、aud、scope 等,不必每次访问 Session Store。

如果 Access Token 是 opaque token,则通常需要通过服务端状态查询或 introspection 才知道它代表什么。

为什么通常短期有效

短期 Access Token 的核心目的之一是限制“已签发快照”和“当前真实状态”之间的滞后窗口。

例如 12:00 签发 Token,12:01 用户被封禁;如果 Resource Server 只做本地 JWT 验证,那么这个 Token 在过期前可能仍被接受。因此 TTL 越长,撤销或权限变化的 stale window 越大。

5 分钟、15 分钟等只是工程取值,不是协议规定的固定标准。

Access Token 能证明到哪一层

它通常可以帮助回答:

你是谁?
这个凭证由谁签发?
它有没有过期?
它带有哪些 scope / role?

但不能自动回答所有资源级权限:

User 42 能不能修改 Assessment 789?

这仍可能需要根据当前数据库状态检查 ownership、组织成员关系、资源状态或其他 Policy。

因此:

Access Token
→ Authentication + coarse-grained authorization context

Business Policy / DB
→ fine-grained resource authorization

与 Session 的关系

两种常见模式:

每请求查 Session

Access Token 只作为定位/认证凭证,每次请求还要查服务端 Session。这样即时撤销强,但失去一部分无状态优势。

短期无状态快路径

Access Token 本地验证,不查 Session;只有 Refresh、Logout、Revocation 等生命周期操作回到 Session/Grant Store。这是典型 Hybrid 架构。

浏览器中的传输与存储

Access Token 可以通过:

  • Authorization: Bearer ...
  • Cookie

传输。若由 JavaScript 主动加 Header,通常要考虑 XSS 窃取;若放在自动携带 Cookie,则还要考虑 CSRF、SameSite 等边界。

边界与常见误解

  • Access Token 不等于 JWT。
  • Access Token 不等于 Session。
  • Access Token 验证成功不等于当前资源操作一定被授权。
  • “短期”是风险窗口设计,不存在所有系统统一的 5 分钟标准。
  • 是否需要每请求查 Session 取决于架构,不是 Access Token 的定义。
创建于 2026/9/15 更新于 2026/9/16
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本