You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在前端Axios GET请求URL中添加当前用户ID?

在Axios GET请求URL中添加当前用户ID的解决方案

核心思路

先从前端存储(比如localStorage)获取当前用户的ID,再将其拼接进请求URL即可。结合你的代码,具体操作如下:


1. 提前存储用户ID

登录成功后,把后端返回的用户ID存入localStorage(如果还没做的话):

// 示例:登录接口成功后保存用户ID
axiosInstance.post('/login', yourLoginData)
  .then(res => {
    localStorage.setItem('access_token', res.data.access_token);
    localStorage.setItem('user_id', res.data.uid); // 把用户ID存起来
  });

2. 修改Axios请求代码

在你的useEffect中,取出存储的用户ID,拼接成正确的请求路径:

useEffect(() => {
  const token = localStorage.getItem("access_token");
  const userId = localStorage.getItem("user_id");
  // 同时校验token和用户ID是否存在
  if (token && userId) {
    axiosInstance.get(`users/${userId}`).then((response) => {
      // 注意:接口返回的数据在response.data里,不是直接response
      setname(response.data.username);
      setemail(response.data.email);
      setidx(response.data.uid);
      console.log(response.data);
      setTimeout(() => {
        props.resetProfileFlag();
      }, 3000);
    }); 
  }
}, [props.success])

额外提示

  • 你之前的代码里直接用obj.username是错误的,Axios的响应数据都包裹在response.data属性中,必须通过这个属性获取后端返回的用户信息
  • 如果不想单独存储用户ID,也可以解析JWT token来获取(需要安装jwt-decode库):
    import jwtDecode from 'jwt-decode';
    
    const token = localStorage.getItem("access_token");
    const decodedToken = jwtDecode(token);
    const userId = decodedToken.uid; // 字段名根据你后端JWT payload的实际字段调整
    
  • 要处理用户ID不存在的情况,比如跳转到登录页面,避免无效请求

内容的提问来源于stack exchange,提问作者MatthewJs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:15:43