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

Laravel 11使用Sanctum请求/api/user返回unauthenticated问题求助

Laravel Sanctum 认证失败问题排查

问题场景

练习Laravel Sanctum时,已成功向localhost:8000/sanctum/csrf-cookie请求获取Cookie,但调用localhost:8000/api/user接口时返回unauthenticated,使用Laravel版本为11。

相关配置信息

.env 配置

SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=locahost
SANCTUM_STATEFUL_DOMAINS=localhost,127.0.0.1

config/sanctum.php 配置

'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf(
        '%s%s',
        'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1',
        Sanctum::currentApplicationUrlWithPort()
    ))),

routes/api.php 配置

Route::get('/user', function (Request $request) {
    return $request->all();
})->middleware('auth:sanctum');

请求截图

csrf-cookie请求截图
api/user请求截图

排查修复方向

  • 修正SESSION_DOMAIN拼写错误:.env中SESSION_DOMAIN=locahost存在拼写错误,应改为SESSION_DOMAIN=localhost,错误的域名配置会导致会话Cookie无法被服务端识别。
  • 完成用户登录流程:auth:sanctum中间件要求用户先通过登录接口(如自定义的/login)完成身份认证,仅获取CSRF令牌无法完成认证,必须确保会话中存在已认证的用户信息。
  • 携带正确的CSRF请求头:调用/api/user时,需在请求头中添加X-XSRF-TOKEN,值为之前获取的CSRF令牌的实际内容(而非Cookie名称)。
  • 确认会话Cookie已携带:检查/api/user请求中是否包含laravel_session Cookie,浏览器通常自动携带,若使用Postman等工具需开启Cookie自动保存或手动添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:48:15