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

Rswag结合RSpec测试Devise-JWT的/users/sign_in接口报401错误

Rswag对接Devise JWT登录接口测试异常

项目基础环境

  • 框架与依赖版本:Rails 6.1.2.1、devise 4.7.3、devise-jwt 0.7.0、rspec-rails 4.0.2、rswag 2.4.0
  • 接口规则:全链路REST接口使用JWT完成鉴权,所有请求默认交互内容类型为application/json

异常表现

完全参照官方文档与教程完成Rswag接口配置,针对POST /users/sign_in接口定义符合规范的请求体schema,要求传入包含必填email、password字段的登录参数,预设接口成功响应状态码为201。
执行Rswag联动的RSpec测试用例时持续触发状态码不匹配报错,抛出Rswag::Specs::UnexpectedResponse异常,明确提示「预期响应码为201,实际返回401」,401响应体返回固定提示:You need to sign in or sign up before continuing.

已尝试的排查操作

先后构造两种符合Devise登录接口预期的入参格式开展测试,均返回相同的401鉴权拒绝结果,未达到预期的201成功响应:

  • 通过FactoryBot工厂创建绑定固定邮箱、固定密码的有效用户,测试请求直接传入对应用户的登录凭证
  • 将登录凭证嵌套至user参数层级下,传入Devise默认要求的{ user: { email: 测试邮箱, password: 测试密码 } }结构参数

全程未发现其他路由匹配、权限拦截层面的额外报错


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 06:36:02