OpenAPI 3.0下使用oauth 2.0配置Firebase securityScheme的正确方法是什么
OpenAPI 3.0 搭配 OAuth 2.0 配置 Firebase 安全方案的正确格式
适配要点
OpenAPI 3.0 废弃了 2.0 版本的 securityDefinitions 配置项,统一迁移到 components.securitySchemes 节点下定义安全规则。Firebase 身份校验基于 OAuth 2.0 颁发的 JWT 格式 ID 令牌,适配时只需对应调整字段结构即可。
标准配置示例
openapi: 3.0.3 info: title: Firebase 鉴权 API 示例 version: 1.0.0 # 全局生效的安全规则,所有接口默认要求 Firebase 身份校验 security: - FirebaseOAuth: [] components: securitySchemes: FirebaseOAuth: type: oauth2 description: 采用 Firebase 颁发的 ID 令牌校验身份,请求时需将令牌填入 Authorization 头的 Bearer 字段 flows: implicit: # 替换为你的 Firebase 项目对应的授权地址 authorizationUrl: https://securetoken.google.com/你的Firebase项目ID scopes: {} # 如有自定义权限要求,可在scopes中添加键值对定义权限范围,例如: # scopes: # user.read: 读取用户信息 # user.write: 修改用户信息 # 若不需要展示 OAuth 2.0 授权流程,仅做令牌格式声明,也可以用更简洁的 bearer 类型配置: # components: # securitySchemes: # FirebaseBearer: # type: http # scheme: bearer # bearerFormat: JWT # description: 传入 Firebase 颁发的 JWT 格式 ID 令牌即可 paths: /api/user/profile: get: summary: 获取当前用户资料 # 若单个接口需要特殊权限,可单独指定安全规则 # security: # - FirebaseOAuth: [user.read] responses: '200': description: 拉取成功 '401': description: 身份校验失败
使用说明
- 客户端请求接口前,先通过 Firebase 客户端 SDK 获取当前登录用户的 ID 令牌
- 请求时将令牌按照
Bearer 你的令牌内容的格式填入Authorization请求头 - 后端/网关校验令牌时,需验证 JWT 的签名合法性、颁发者、受众、过期时间等核心字段,避免伪造令牌
- 有细粒度权限控制需求的场景,可自定义 scope 规则,在对应接口的安全配置中指定所需权限即可
内容的提问来源于stack exchange,提问作者CambodianCoder
相关产品推荐
相关产品推荐

