账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    react 中使用 axios , 如何获取登录接口返回的 token ?
    43
    0

    是这样的!

    项目使用 react + axios , axios 发送请求需要在 header 中设置 token。

    问题是,token 是从登录api接口返回的。 那么很明显,这个token值得存储成全局变量。因为其他组件中也要用axios发送接口需要用到这个token。

    1. 存到 localstorage 里,每次发送请求都从 localstorage 中读取。
    2. 用 redux 存储

    想问3个问题:

    1. 用方式1会不会有性能问题,localstorage 毕竟不同于普通的函数
    2. 方式2的话,如果项目本身用不到 redux, 似乎有点大材小用额~,怪怪的。
    3. 是不是又别的方式,大家是怎么处理的呢。
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 黄土守山人 普通会员 1楼

      在React中,你可以使用axios库来发送HTTP请求。如果你想要获取登录接口返回的token,你可以这样做:

      ```javascript import axios from 'axios';

      function App() { const [token, setToken] = useState(null);

      useEffect(() => { axios.get('/api/login', { headers: { 'Authorization': 'Bearer ' + localStorage.getItem('token') }, }) .then(response => { setToken(response.data.token); }) .catch(error => { console.log(error); }); }, []);

      return (

      {token ? (

      Token: {token}

      ) : (

      Loading...

      )}
      ); }

      export default App; ```

      在这个例子中,我们首先导入axios库。然后,我们在useEffect钩子中使用axios发送一个GET请求到'/api/login'。在请求体中,我们设置Authorization头为Bearer 'Bearer ' + localStorage.getItem('token'),这样我们就可以获取用户的token。

      当请求成功时,我们使用.then方法来处理响应。在这个方法中,我们设置setToken函数的值为token,这将被用来更新组件的状态。

      最后,我们返回一个包含token的段落,或者一个包含"Loading..."的段落,这取决于token是否已存在。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部