当前位置:首页 > React

react中token如何写

2026-01-25 06:38:43React

在React中处理Token的方法

使用localStorage或sessionStorage存储Token
将Token存储在浏览器的localStorage或sessionStorage中,便于跨页面使用。localStorage数据持久化,sessionStorage仅在当前会话有效。

// 存储Token
localStorage.setItem('token', 'your_token_here');

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

// 删除Token
localStorage.removeItem('token');

通过Context API全局管理Token
创建全局状态管理Context,方便组件树共享Token状态,避免逐层传递。

react中token如何写

import React, { createContext, useState, useContext } from 'react';

const AuthContext = createContext();

export const AuthProvider = ({ children }) => {
  const [token, setToken] = useState(localStorage.getItem('token'));

  const login = (newToken) => {
    localStorage.setItem('token', newToken);
    setToken(newToken);
  };

  const logout = () => {
    localStorage.removeItem('token');
    setToken(null);
  };

  return (
    <AuthContext.Provider value={{ token, login, logout }}>
      {children}
    </AuthContext.Provider>
  );
};

export const useAuth = () => useContext(AuthContext);

在请求头中携带Token
通过axios拦截器或fetch配置,将Token自动附加到HTTP请求头中。

react中token如何写

import axios from 'axios';

axios.interceptors.request.use((config) => {
  const token = localStorage.getItem('token');
  if (token) {
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
});

路由守卫保护页面
结合React Router实现路由拦截,未登录时跳转到登录页。

import { Route, Navigate } from 'react-router-dom';

const PrivateRoute = ({ children }) => {
  const token = localStorage.getItem('token');
  return token ? children : <Navigate to="/login" />;
};

// 使用示例
<Route path="/dashboard" element={<PrivateRoute><Dashboard /></PrivateRoute>} />

Token刷新机制
通过拦截401响应,自动刷新Token并重试请求。

axios.interceptors.response.use(
  (response) => response,
  async (error) => {
    if (error.response.status === 401) {
      const newToken = await refreshToken(); // 实现刷新逻辑
      localStorage.setItem('token', newToken);
      return axios(error.config); // 重试原请求
    }
    return Promise.reject(error);
  }
);

安全注意事项
避免将敏感Token直接暴露在客户端代码中,确保使用HTTPS传输。对于高安全性场景,考虑HttpOnly Cookie存储。定期清理过期Token,并实现服务端校验机制。

标签: 如何写react
分享给朋友:

相关文章

react如何开发组件

react如何开发组件

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

如何手写一个react

如何手写一个react

手写一个简单的 React 创建一个基础的 React 实现需要理解其核心概念:虚拟 DOM、组件、状态管理和渲染。以下是一个简化版的 React 实现。 创建虚拟 DOM 虚拟 DOM 是真实 D…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 基础页面结构 在 s…

react如何销毁

react如何销毁

React 组件销毁的机制 在 React 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通常…

react如何查

react如何查

React 查询方法 React 提供了多种查询 DOM 元素的方式,以下是几种常见的方法: 使用 ref 通过 useRef 钩子可以获取 DOM 节点的引用,适用于直接操作 DOM 的场景。…

如何运行react

如何运行react

运行 React 项目的步骤 安装 Node.js 和 npm 确保系统已安装 Node.js(包含 npm)。可通过官网 Node.js 下载并安装最新稳定版本。安装完成后,验证版本: node…