当前位置:首页 > React

react中如何缓存下token

2026-03-11 08:47:29React

缓存 Token 的常见方法

在 React 中缓存 Token 通常用于持久化用户认证状态,避免重复登录。以下是几种常用方法:

使用 localStorage 或 sessionStorage

localStoragesessionStorage 是浏览器提供的存储 API,适合存储 Token 这类敏感信息(需注意安全性)。

// 存储 Token
localStorage.setItem('authToken', 'your-token-here');

// 获取 Token
const token = localStorage.getItem('authToken');

// 清除 Token
localStorage.removeItem('authToken');

区别

  • localStorage:数据永久存储,除非手动清除。
  • sessionStorage:数据仅在当前会话有效,关闭标签页后清除。

使用 Cookies

Cookies 可以设置过期时间,适合与服务端配合实现 Token 的自动管理。

// 设置 Cookie(需自行封装或使用库)
document.cookie = `authToken=your-token-here; path=/; max-age=${3600}`;

// 读取 Cookie(需解析字符串)
const cookies = document.cookie.split(';').reduce((acc, cookie) => {
  const [key, value] = cookie.trim().split('=');
  acc[key] = value;
  return acc;
}, {});
const token = cookies.authToken;

使用状态管理库(如 Redux、Context API)

结合状态管理库和持久化存储(如 redux-persist),可以同步 Token 到本地存储。

// 示例:redux-persist 配置
import { persistStore, persistReducer } from 'redux-persist';
import storage from 'redux-persist/lib/storage';

const persistConfig = {
  key: 'root',
  storage,
  whitelist: ['auth'] // 仅持久化 auth 状态
};

const persistedReducer = persistReducer(persistConfig, rootReducer);
const store = createStore(persistedReducer);
const persistor = persistStore(store);

使用内存缓存

对于单页应用(SPA),可以将 Token 保存在内存中(如全局变量或 React 状态),但页面刷新后会丢失。

react中如何缓存下token

let globalToken = null;

// 存储
globalToken = 'your-token-here';

// 读取
console.log(globalToken);

安全注意事项

  1. 避免明文存储敏感信息:必要时对 Token 加密。
  2. 设置合理的过期时间:尤其是 Cookie 和 localStorage
  3. 启用 HTTP Only 和 Secure 标志:若使用 Cookie,防止 XSS 攻击。
  4. 服务端验证:客户端缓存仅为优化体验,关键逻辑需服务端校验。

示例:封装 Token 工具

// authUtils.js
export const setToken = (token) => {
  localStorage.setItem('authToken', token);
};

export const getToken = () => {
  return localStorage.getItem('authToken');
};

export const clearToken = () => {
  localStorage.removeItem('authToken');
};

通过以上方法,可以根据项目需求选择适合的 Token 缓存策略。

标签: 缓存react
分享给朋友:

相关文章

react 如何执行

react 如何执行

安装 Node.js 和 npm React 开发需要 Node.js 环境,因为它提供了 npm(或 yarn)包管理工具。从 Node.js 官网 下载并安装最新 LTS 版本。安装完成后,在终端…

react如何开发组件

react如何开发组件

React 组件开发基础 React 组件分为函数组件和类组件两种形式。函数组件是现代 React 开发的主流方式,结合 Hooks 可以实现完整功能。 函数组件示例: function Gree…

react如何读

react如何读

React 的发音 React 的发音为 /riˈækt/(音标),读作“瑞-艾克特”。其中: “Re” 发音类似英文单词 “read” 的开头部分。 “act” 发音与英文单词 “act” 一致。…

react如何安装

react如何安装

安装React的步骤 确保已安装Node.js(建议版本12或更高),可通过以下命令检查版本: node -v npm -v 使用Create React App快速搭建项目(推荐): npx c…

react如何发布

react如何发布

发布React应用的步骤 构建生产版本 使用以下命令生成优化后的生产版本代码,代码会被压缩并移除开发环境中的调试工具: npm run build 构建完成后会生成build文件夹,包含所有静态资源…

react如何引用canvas

react如何引用canvas

使用 ref 直接操作 Canvas 在 React 中通过 useRef 钩子创建引用,绑定到 <canvas> 元素的 ref 属性。组件挂载后可通过 ref.current 获取原生…