如何解决Laravel Passport的api/register注册接口跳转首页问题
排查解决步骤
- 优先检查请求类型
你定义的register路由为POST类型,确认Postman调用时使用的是POST请求,不要和登录接口一样直接把参数放在URL里用GET方式提交,GET请求无法匹配POST路由,会触发重定向。 - 添加API请求必要头
在Postman的请求头中新增Accept: application/json,Laravel会根据这个头识别当前是API请求,验证失败时会返回JSON格式的错误信息,而不是默认的重定向响应。添加后重试就能看到具体的报错原因(比如参数缺失、邮箱重复、密码确认不匹配等)。 - 核对注册参数完整性
你的注册验证规则中使用了password的confirmed校验规则,所以请求时必须同时传递password和password_confirmation两个参数,且二者值完全一致,否则会触发验证失败重定向。 - 检查User模型配置
确认你的App\Models\User模型已经引入了Passport的HasApiTokensTrait,示例如下:
use Laravel\Passport\HasApiTokens; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable { use HasApiTokens, Notifiable; // 剩余模型代码 }
如果缺少这个Trait,调用createToken方法时会抛出异常,未正确配置异常处理的情况下也会触发重定向。
- 关闭Postman自动重定向
你可以在Postman设置中关闭「Automatically follow redirects」选项,就能看到接口返回的原始状态码和响应内容,更方便定位问题。
另外VS Code提示的undefined method属于IDE识别问题,不是代码运行错误,安装Laravel IDE Helper扩展即可消除提示。
内容的提问来源于stack exchange,提问作者M.Koops
相关产品推荐
相关产品推荐

