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

OpenAPI Generator生成的Dart-Dio客户端Bearer Token不生效问题

问题排查与解决方案

以下是几种可能的原因和对应的解决方法:

  1. Bearer Token格式错误
    多数OpenAPI Generator生成的dart-dio客户端中,setBearerAuth方法的第二个参数只需传入纯token值,不需要手动添加Bearer:前缀——方法内部会自动拼接成标准的Bearer <token>格式。
    如果你传入Bearer: $token,最终请求头会变成Authorization: Bearer Bearer: xxx,导致服务端无法识别授权信息,返回401。
    修正代码:

    openapi.setBearerAuth('Authorization', token); // 仅传纯token,不带Bearer:前缀
    
  2. BearerAuth的名称不匹配
    检查你的OpenAPI规范文件中,Bearer认证的securityScheme名称。比如如果spec里定义的是:

    components:
      securitySchemes:
        bearerAuth: # 此处名称为bearerAuth,而非Authorization
          type: http
          scheme: bearer
          bearerFormat: JWT
    

    调用setBearerAuth时第一个参数应使用这个名称,而非Authorization:

    openapi.setBearerAuth('bearerAuth', token);
    

    客户端会自动将该认证绑定到对应的Authorization请求头。

  3. API子实例未继承根实例的授权设置
    部分版本的OpenAPI Generator生成的客户端中,根实例的授权设置不会自动同步到各个API子实例(比如getSomethingApi)。此时需要直接给对应API实例设置授权:

    openapi.getSomethingApi.setBearerAuth('Authorization', token);
    
  4. 检查客户端生成配置
    若以上方法均无效,确认生成客户端时是否启用了正确的认证支持。比如生成命令是否包含--enable-security相关参数,或配置文件是否开启了认证相关生成选项。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:10:33