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

Laravel 10+Breeze+Sanctum登录后重定向循环问题求助

Laravel 10+Breeze+Sanctum登录后重定向排查方向
  • 路由与中间件配置检查

    1. 打开routes/web.php,确认首页路由没有错误应用guest中间件(误加会导致已登录用户被强制重定向),同时确保需登录访问的路由正确绑定auth中间件。
    2. 检查app/Http/Kernel.php的web中间组,确认包含StartSession、AuthenticateSession、VerifyCsrfToken核心中间件,且StartSession必须排在Authenticate之前——否则会话未启动就执行认证判断,会导致已登录状态无法被识别。
  • 会话配置验证

    1. 查看config/session.php:
      • domain字段需与当前应用域名完全匹配(本地开发填localhost或localhost:8000,不可留空);
      • secure字段在本地HTTP环境下必须设为false,HTTPS生产环境才设为true,否则浏览器会拒绝保存会话Cookie;
      • same_site建议设为'lax',避免严格跨域策略阻止Cookie传递。
  • Breeze认证逻辑核对

    1. 打开app/Http/Controllers/Auth/AuthenticatedSessionController.php的store方法,确认登录成功后的重定向代码为return redirect()->intended(RouteServiceProvider::HOME);,未被修改为错误路由。
    2. 检查app/Providers/RouteServiceProvider.php中的HOME常量,确认其指向正确的首页路由(比如'/'或route('dashboard')对应的路径)。
  • Sanctum配置校验

    1. 查看config/sanctum.php的stateful数组,确保包含当前应用的完整域名(比如本地开发的['localhost', 'localhost:8000']),该配置决定哪些域名可使用Sanctum会话认证。
    2. 注意EnsureFrontendRequestsAreStateful中间件仅用于api中间组,不要错误添加到web中间组,否则会干扰Web端会话认证逻辑。
  • 缓存与Cookie排查

    1. 执行以下命令清除所有缓存,避免旧配置残留:
      php artisan cache:clear
      php artisan config:clear
      php artisan route:clear
      php artisan view:clear
      
    2. 在浏览器开发者工具的Application标签下,检查laravel_session和XSRF-TOKEN Cookie是否存在,确认其域名、路径正确,未被标记为过期或被浏览器阻止。
    3. 使用无痕模式测试登录,排除浏览器插件(如广告拦截器)或本地缓存干扰Cookie的可能。
  • 用户模型与认证驱动检查

    1. 确认app/Models/User.php正确引入Illuminate\Foundation\Auth\User as Authenticatable trait,并实现Authenticatable接口(Breeze默认已配置,但手动修改后可能丢失)。
    2. 查看config/auth.php:
      • defaults.guard设为web;
      • guards.web.driver设为session,确保默认认证使用会话驱动而非Token驱动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:16:16