当前位置:首页 > 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状态,避免逐层传递。

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请求头中。

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并重试请求。

react中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项目的步骤 安装Node.js 确保系统已安装Node.js(建议版本12以上),可从官网下载并安装。Node.js自带npm包管理器,用于后续依赖安装。 创建React项目 使用官方…

react 如何跳转

react 如何跳转

使用 React Router 进行页面跳转 React 应用中通常使用 react-router-dom 库实现页面跳转。以下是几种常见的跳转方式: 安装依赖 npm install react…

react 如何获取dom

react 如何获取dom

获取 DOM 的方法 在 React 中,可以通过 useRef 或 createRef 来获取 DOM 节点。useRef 是函数组件中常用的方法,而 createRef 通常用于类组件。 使用…

如何调试react源码

如何调试react源码

调试React源码的方法 克隆React源码仓库到本地: git clone https://github.com/facebook/react.git cd react 安装依赖并构建开发版本:…

react如何切换class

react如何切换class

动态切换 React 组件的类名 在 React 中动态切换类名可以通过多种方式实现,以下是常见的几种方法: 使用模板字符串和状态管理 function MyComponent() {…

如何编译react文件

如何编译react文件

编译 React 文件的方法 使用 Create React App (CRA) Create React App 是官方推荐的快速搭建 React 项目的工具,内置了 Babel 和 Webpack…