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

如何在浏览器(Cordova)中使用认证令牌初始化Swagger Client?

解决Swagger-Client配置Strava API时的Authorization头错误问题

我之前在做类似的Cordova项目时也踩过这个坑,Swagger JS 2.x版本的认证配置逻辑和旧版本差异挺大的,你之前的写法不符合新版本的要求,所以才会抛出TypeError。给你两个靠谱的解决思路:

方法一:用请求拦截器统一添加认证头

这种方式最直观,也不容易出错,不管接口有没有定义安全规则,都会给所有请求自动带上Authorization头:

window.stravaClient = new SwaggerClient({
  url: "https://developers.strava.com/swagger/swagger.json",
  requestInterceptor: (req) => {
    // 直接给请求头赋值
    req.headers.Authorization = `Bearer ${authToken}`;
    return req;
  }
});

方法二:按照Swagger 2.x的认证规范配置

如果你想沿用类似authorizations的配置方式,要注意两个关键点:

  1. 键名必须和Strava Swagger文档里定义的安全方案名称一致(Strava用的是strava_oauth)
  2. 值必须是包含value字段的对象,不能直接传字符串

代码示例:

window.stravaClient = new SwaggerClient({
  url: "https://developers.strava.com/swagger/swagger.json",
  authorizations: {
    strava_oauth: {
      value: `Bearer ${authToken}`
    }
  }
});

额外提醒

你之前的错误主要是两个原因:一是2.x版本不再支持直接给authorizations传字符串;二是用了Authorization作为键名,而Strava的Swagger定义里对应的安全方案名称是strava_oauth,不匹配就会导致认证逻辑失效。另外在Cordova环境里,记得确认authToken已经正确获取,没有为空或者格式错误的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:28:55