当前位置:首页 > React

react如何在头部传token

2026-01-25 08:31:32React

在 React 中传递 Token 到请求头部

在 React 应用中,通常需要将 Token(如 JWT)附加到 HTTP 请求的头部(通常是 Authorization 头)。以下是几种常见方法:

使用 Axios 全局配置

通过 Axios 的拦截器或全局配置,可以在每次请求时自动添加 Token:

import axios from 'axios';

// 设置全局默认头部
axios.defaults.headers.common['Authorization'] = `Bearer ${localStorage.getItem('token')}`;

// 或使用请求拦截器
axios.interceptors.request.use(config => {
  const token = localStorage.getItem('token');
  if (token) {
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
});

使用 Fetch API

如果使用原生 fetch,可以手动设置头部:

fetch('https://api.example.com/data', {
  headers: {
    'Authorization': `Bearer ${localStorage.getItem('token')}`
  }
});

封装自定义 HTTP 客户端

创建一个封装类或函数,统一处理 Token 逻辑:

class ApiClient {
  static async request(url, options = {}) {
    const token = localStorage.getItem('token');
    const headers = {
      ...options.headers,
      Authorization: token ? `Bearer ${token}` : undefined
    };
    return fetch(url, { ...options, headers });
  }
}

// 使用示例
ApiClient.request('https://api.example.com/data');

使用 Context 或状态管理

通过 React Context 或 Redux 等状态管理工具传递 Token:

// 在 Context 中提供 Token
const AuthContext = React.createContext();

function App() {
  const [token, setToken] = useState(localStorage.getItem('token'));
  return (
    <AuthContext.Provider value={{ token }}>
      <ChildComponent />
    </AuthContext.Provider>
  );
}

// 在子组件中使用
function ChildComponent() {
  const { token } = useContext(AuthContext);
  // 将 token 用于请求
}

动态更新 Token

如果 Token 可能过期或更新,需要动态处理:

// 示例:响应拦截器中处理 401 错误
axios.interceptors.response.use(
  response => response,
  error => {
    if (error.response.status === 401) {
      // 刷新 Token 逻辑
    }
    return Promise.reject(error);
  }
);

注意事项

  • 安全存储:避免将 Token 直接存储在 JavaScript 变量中,优先使用 HttpOnly Cookie 或安全存储(如 localStorage)。
  • HTTPS:确保所有请求通过 HTTPS 传输,防止 Token 被截获。
  • Token 过期:实现 Token 刷新机制,避免频繁重新登录。

以上方法可根据项目需求和技术栈选择组合使用。

react如何在头部传token

标签: 头部如何在
分享给朋友:

相关文章

vue实现头部不刷新

vue实现头部不刷新

实现头部不刷新的方法 在Vue应用中,保持头部不刷新通常意味着在页面切换时避免重新渲染头部组件。以下是几种常见方法: 使用路由嵌套 将头部组件作为布局的一部分,在路由配置中使用嵌套路由: co…

vue组件如何在react

vue组件如何在react

在React中使用Vue组件 将Vue组件集成到React项目中可以通过几种方法实现。以下是常见的技术方案: 使用vue-react-wrapper库 安装vue-react-wrapper库能够简…

redux如何在react使用

redux如何在react使用

安装 Redux 相关依赖 在 React 项目中使用 Redux 需要安装以下核心库: redux:Redux 核心库。 react-redux:用于连接 Redux 和 React。…

如何在react中echars

如何在react中echars

在 React 中使用 ECharts 要在 React 项目中集成 ECharts,需要安装 ECharts 库并通过 React 组件调用其 API。以下是具体实现方法: 安装 ECharts…

如何在react中使用VUE

如何在react中使用VUE

在React中直接使用Vue组件通常需要借助第三方工具或库,因为两者设计理念和渲染机制不同。以下是几种可行的方案: 通过微前端架构集成 微前端框架如single-spa或qiankun可以同时加载…

如何在react中使用jq

如何在react中使用jq

在React中使用jQuery的方法 虽然React和jQuery的设计理念不同(React基于虚拟DOM和组件化,jQuery直接操作真实DOM),但在某些场景下仍可能需要结合使用。以下是几种常见方…