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

Laravel Sanctum未设置XSRF-cookie仍接受请求问题咨询

为什么未调用/sanctum/csrf-cookie也能成功注册?
  • API路由默认不启用CSRF校验:Laravel的routes/api.php内的路由默认归属api中间件组,这个组并未包含VerifyCsrfToken中间件。只有routes/web.php中的路由才会自动应用CSRF校验逻辑,所以直接调用API路由下的注册接口,本身就不需要CSRF令牌。

  • Sanctum的CSRF cookie仅针对Session认证场景:当使用Sanctum的SPA认证模式时(即前端通过浏览器与后端共享Cookie、用Session维持登录状态),才需要先调用/sanctum/csrf-cookie获取CSRF令牌——因为此时请求会携带Session Cookie,后端会触发CSRF校验。但如果你的注册接口是基于无状态Token认证(比如注册后返回API Token,后续请求用Token而非Cookie),或是单纯的匿名注册接口,根本没用到Session,自然不需要CSRF校验。

  • 注册接口属于匿名可访问范畴:如果你的注册路由没有添加auth:sanctum中间件,那它就是公开接口,Sanctum不会对这类未认证接口强制要求CSRF校验。只有当接口需要用户通过Session认证访问时,才会触发CSRF校验逻辑。

举个典型的示例,若你的routes/api.php里的注册路由是这样的:

Route::post('/register', [UserController::class, 'register']);

该路由未附加任何认证中间件,属于完全公开的接口,只要请求参数符合要求,无论是否携带CSRF令牌都能执行成功。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 15:24:52