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

Node.js登录Raiz Invest后调用account_summary API返回401未授权的解决方法咨询

Node.js登录Raiz Invest后调用account_summary API返回401未授权的解决方法咨询

我完全理解你现在的困扰——用Node.js的superagent成功登录Raiz Invest拿到了TOKEN和user_uuid,但调用/mobile/v1/account_summary接口时一直返回401未授权,连浏览器里直接点这个接口链接也报错。结合你的描述和代码,我给你几个具体的排查方向:

  • 检查Token的携带方式
    登录接口返回的TOKEN,大概率需要在后续API请求的请求头里显式携带,很多网站会用Authorization: Bearer <TOKEN>这种格式。你当前用superagent的agent实例虽然会自动保存会话Cookie,但移动端API可能是基于Token而非Cookie验证的,试试手动添加请求头:

    const loginRes = JSON.parse(dashboard.text);
    let dashboard3 = await superagent.get('https://api.raizinvest.com.au/mobile/v1/account_summary')
      .set('Authorization', `Bearer ${loginRes.TOKEN}`);
    

    另外,记得去Chrome开发者工具里看浏览器正常请求这个接口时的Request Headers,除了Authorization,可能还有X-UDID这类自定义头,把这些字段也同步加到你的请求里。

  • 注意API的服务差异
    你登录用的是/v1/sessions接口,而目标接口属于/mobile/v1/前缀,这俩可能是不同的服务集群,验证机制可能不一样。比如移动端接口可能需要单独的登录凭证,或者对Token的格式有特殊要求。你可以观察浏览器里这个接口的触发时机——它应该是前端页面加载后通过JS发起的请求,而非直接地址栏访问,所以要模仿这个流程的上下文。

  • 确认Cookie的完整性
    虽然superagent的agent会自动管理Cookie,但有些网站的登录状态是多个Cookie组合验证的。你可以先打印登录响应里的Cookie信息:

    console.log(dashboard.headers['set-cookie']);
    

    看看有没有关键的Cookie字段被agent遗漏,必要时可以手动把这些Cookie加到后续请求头里:

    const cookies = dashboard.headers['set-cookie'].map(c => c.split(';')[0]).join('; ');
    let dashboard3 = await superagent.get('https://api.raizinvest.com.au/mobile/v1/account_summary')
      .set('Cookie', cookies);
    
  • 保持UDID的一致性
    你登录时传入了udid参数,移动端API很可能要求这个UDID在后续请求里也保持一致。可以把它作为请求头或参数带上,比如:

    const udid = 'bc28eff9-0cf2-414d-a17b-01ec20d53bc3';
    let dashboard3 = await superagent.get('https://api.raizinvest.com.au/mobile/v1/account_summary')
      .set('X-UDID', udid);
    

核心思路就是:对比浏览器正常请求和你的代码请求的所有细节差异——包括请求头、参数、Cookie、Token等,把这些差异补上,大概率就能解决401的问题。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 10:13:09