type
status
date
slug
summary
tags
category
icon
password
了解安全登录之双 Token 机制
在现代 Web 系统中,如何实现安全、高效的身份认证机制是开发中非常重要的一环。本文将带你了解目前非常常见的一种认证方式:双 Token 登录机制(Access Token + Refresh Token),并结合图示与代码帮助你理解它的工作原理。
一、为什么不能只用一个 Token?
单一 Token(如 JWT)虽然实现简单,但存在以下风险:
- 一旦被盗,攻击者可以在 Token 有效期内无限使用
- Token 不能轻易设置过期(太短会频繁登录,太长容易泄漏)
因此,引入 Refresh Token 作为配套机制,能更好地兼顾安全性和用户体验。
二、什么是双 Token 机制?
双 Token 机制中,登录成功后服务端会签发两个 Token:
- Access Token(访问令牌):有效期短(如 15 分钟),用于每次接口请求
- Refresh Token(刷新令牌):有效期长(如 7 天),用于 Access Token 过期后的刷新
图示:Token 工作流程
三、前端怎么处理 Token?
- 登录时保存 Token:
- 请求时携带 Access Token:
- 拦截响应,判断是否需要刷新 Token:
四、服务端如何实现?
五、常见问题
Q1: Refresh Token 也被盗了怎么办?
可以在后端将 Refresh Token 存入数据库绑定设备,并支持主动注销与失效判断。
Q2: Refresh Token 要存在哪里?
建议:Access Token 放 localStorage,Refresh Token 放 HttpOnly Cookie,防止 XSS 泄露
Q3: 为什么不每次都用 Refresh Token 请求?
因为 Refresh Token 敏感度更高,应该尽量减少使用次数,只在 Access Token 失效时使用。
- 作者:wdkang
- 链接:https://blog.wdkang.com/article/refresh-token
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。





.png?table=block&id=1ee896c5-9558-8082-9649-e66950102aad&t=1ee896c5-9558-8082-9649-e66950102aad)




