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

React Native应用请求遇Unauthorized错误,无法获取Token求助

解决React Native请求Unauthorized无法获取Token的问题

按优先级从以下方向排查:

  • 检查请求头的认证凭证
    确认Token接口请求中Authorization头的格式和内容是否正确。比如使用Basic Auth时,需将username:password做base64编码,且前缀为Basic (注意空格);若用API Key,要确认放在了后端要求的头字段(如X-API-Key)里。
    示例代码:

    // Basic Auth请求头示例
    const authHeader = 'Basic ' + btoa(`${username}:${password}`);
    fetch('https://your-api.com/token', {
      method: 'POST',
      headers: {
        'Authorization': authHeader,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({ grant_type: 'password' })
    })
    
  • 核对请求参数的正确性
    确认传给Token接口的参数与后端要求完全一致:比如grant_type是否为password(密码模式下),username、password、client_id等字段名有没有写错,参数值是否有效。部分后端会更新参数规则,比如新增必填参数或修改字段名,这会直接导致未授权。

  • 排查环境配置变化
    检查是否误切换了运行环境(如从测试环境切到生产环境),或者.env文件中的API地址、认证凭证被修改。比如测试环境与生产环境的CLIENT_ID不同,未同步更新就会触发授权失败。

  • 查看后端返回的详细错误信息
    不要只关注HTTP状态码,打印响应体内容。多数后端会返回具体错误描述,比如{"error":"invalid_grant","error_description":"Bad credentials"},这类信息能直接定位问题(如密码错误、凭证过期)。
    示例代码:

    fetch('https://your-api.com/token', { ... })
      .then(res => res.json())
      .then(data => {
        if (data.error) console.log('错误详情:', data.error_description);
      })
      .catch(err => console.log(err));
    
  • 检查Token缓存与刷新逻辑
    若之前缓存过Token,确认Token是否已过期。JWT Token可解码查看exp字段(过期时间戳),若已过期,检查刷新Token逻辑是否正常触发,是否因刷新Token也过期导致无法获取新Token。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:56:05