Lazy loaded image
技术分享
了解安全登录之双 Token 机制
字数 708阅读时长 2 分钟
2021-4-17
2025-5-9
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?

  1. 登录时保存 Token
  1. 请求时携带 Access Token
  1. 拦截响应,判断是否需要刷新 Token

四、服务端如何实现?

五、常见问题

Q1: Refresh Token 也被盗了怎么办?

可以在后端将 Refresh Token 存入数据库绑定设备,并支持主动注销与失效判断。

Q2: Refresh Token 要存在哪里?

建议:Access Token 放 localStorage,Refresh Token 放 HttpOnly Cookie,防止 XSS 泄露

Q3: 为什么不每次都用 Refresh Token 请求?

因为 Refresh Token 敏感度更高,应该尽量减少使用次数,只在 Access Token 失效时使用。

上一篇
Everything 文件搜索软件推荐
下一篇
Vue 组件通信中常用的 6 种方式