如何在Swagger UI中配置请求头发送多个Cookie?
问题根源
你第二种配置的核心错误是三个securitySchemes的name字段全部误写为"user",这导致Swagger UI无法识别每个Cookie的独立名称,最终错误地用&拼接参数,而非浏览器标准的; 分隔格式,进而引发认证失败。
正确配置方案
需要为每个Cookie单独定义securityScheme,且每个securityScheme的name必须严格对应实际的Cookie名称(user、password、hashFunc),再在全局security数组中同时启用这三个方案。
完整配置示例
... "components": { "securitySchemes": { "userCookie": { "name": "user", "type": "apiKey", "in": "cookie" }, "passwordCookie": { "name": "password", "type": "apiKey", "in": "cookie" }, "hashFuncCookie": { "name": "hashFunc", "type": "apiKey", "in": "cookie" } } }, "security": [ { "userCookie": [], "passwordCookie": [], "hashFuncCookie": [] } ], ...
配置说明
- 每个
securityScheme的name必须与实际要发送的Cookie名称完全匹配 security数组同时包含三个方案,表明请求需要同时携带这三个Cookie- 配置生效后,Swagger UI会自动将Cookie格式化为
user=xxx; password=xxx; hashFunc=xxx的浏览器兼容格式发送
额外提示
如果仅部分API接口需要这三个Cookie认证,可将security配置从根节点移到对应paths下的接口定义中,无需全局启用。
内容的提问来源于stack exchange,提问作者Dairelys García Rivas
相关产品推荐
相关产品推荐

