当前位置:首页 > React

react如何获取token

2026-02-12 08:38:39React

获取 Token 的方法

在 React 中获取 Token 通常涉及与后端 API 的交互(如登录验证)或从本地存储(如 localStorage、sessionStorage)中读取。以下是几种常见场景的实现方式:

从 API 获取 Token

通过发送 HTTP 请求(如登录接口)获取 Token,并将 Token 存储到本地:

import React, { useState } from 'react';
import axios from 'axios';

const LoginForm = () => {
  const [email, setEmail] = useState('');
  const [password, setPassword] = useState('');

  const handleSubmit = async (e) => {
    e.preventDefault();
    try {
      const response = await axios.post('https://api.example.com/login', {
        email,
        password,
      });
      const { token } = response.data;
      localStorage.setItem('authToken', token); // 存储到 localStorage
      console.log('Token:', token);
    } catch (error) {
      console.error('Login failed:', error);
    }
  };

  return (
    <form onSubmit={handleSubmit}>
      <input type="email" value={email} onChange={(e) => setEmail(e.target.value)} />
      <input type="password" value={password} onChange={(e) => setPassword(e.target.value)} />
      <button type="submit">Login</button>
    </form>
  );
};

从本地存储读取 Token

localStoragesessionStorage 中读取已保存的 Token:

import React, { useEffect } from 'react';

const Dashboard = () => {
  useEffect(() => {
    const token = localStorage.getItem('authToken');
    if (!token) {
      // 跳转到登录页
      window.location.href = '/login';
    } else {
      console.log('Stored Token:', token);
    }
  }, []);

  return <div>Protected Content</div>;
};

使用 Context 全局管理 Token

通过 React Context 在组件间共享 Token 状态:

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

const AuthContext = createContext();

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

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

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

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

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

在组件中使用:

const Profile = () => {
  const { token, logout } = useAuth();

  return (
    <div>
      <button onClick={logout}>Logout</button>
      {token && <p>Token: {token}</p>}
    </div>
  );
};

从 URL 参数获取 Token

适用于 OAuth 回调等场景,从 URL 中解析 Token:

react如何获取token

import React, { useEffect } from 'react';
import { useLocation } from 'react-router-dom';

const OAuthCallback = () => {
  const location = useLocation();

  useEffect(() => {
    const params = new URLSearchParams(location.search);
    const token = params.get('token');
    if (token) {
      localStorage.setItem('authToken', token);
    }
  }, [location]);

  return <div>Processing OAuth...</div>;
};

注意事项

  1. 安全性:避免将敏感 Token 暴露在客户端代码或全局状态中。
  2. 存储方式:根据需求选择 localStorage(持久化)或 sessionStorage(会话级)。
  3. HTTP 请求:在请求头中携带 Token 时,通常格式为 Authorization: Bearer <token>

根据具体场景选择合适的方法即可。

标签: reacttoken
分享给朋友:

相关文章

react 如何引入jquery

react 如何引入jquery

引入 jQuery 到 React 项目 在 React 项目中引入 jQuery 可以通过多种方式实现,但需要注意 React 和 jQuery 操作 DOM 的方式可能冲突,因此建议仅在必要时使用…

如何下载react

如何下载react

下载 React 的方法 通过 npm 或 yarn 安装 React 可以通过包管理器 npm 或 yarn 安装。确保已安装 Node.js(包含 npm),然后在项目目录中运行以下命令:…

如何用react

如何用react

使用React的基本步骤 安装Node.js和npm 确保系统已安装Node.js和npm。Node.js自带npm,可从官网下载安装包。安装完成后,通过命令行验证版本: node -v npm -…

react如何重置

react如何重置

重置 React 应用的状态 使用 useState 钩子重新初始化状态变量是最直接的方法。将状态变量重置为初始值或空值即可完成重置。 const [count, setCount] = useSt…

react如何调度

react如何调度

React 调度机制概述 React 的调度机制通过 Fiber 架构 和 Scheduler 模块实现任务优先级管理与时间切片(Time Slicing),确保高优先级更新(如用户交互)能快速响应,…

如何关闭react

如何关闭react

关闭React应用的步骤 在开发或运行React应用时,可能需要关闭正在运行的开发服务器或停止应用。以下是几种常见情况的处理方法: 停止开发服务器 如果正在使用npm start或yarn star…