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

Laravel 10.20.0中Jetstream邮箱验证不生效问题求助

解决Laravel Jetstream未验证邮箱仍可登录的问题

你还需要完成以下两项关键配置:

  1. 在Web中间件组启用邮箱验证中间件
    打开app/Http/Kernel.php,找到web中间件组,添加邮箱验证中间件:

    protected $middlewareGroups = [
        'web' => [
            // 保留原有其他中间件
            \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
        ],
        // ...
    ];
    

    这个中间件会拦截已登录但未验证邮箱的用户,强制跳转至验证提示页面。

  2. 自定义登录后的跳转逻辑(可选但推荐)
    默认登录成功后会直接进入首页,若要让未验证用户登录后直接显示验证提示,可自定义Fortify的登录响应:

    • 创建自定义响应类app/Http/Responses/LoginResponse.php:
      <?php
      
      namespace App\Http\Responses;
      
      use Laravel\Fortify\Contracts\LoginResponse as LoginResponseContract;
      
      class LoginResponse implements LoginResponseContract
      {
          public function toResponse($request)
          {
              if (!$request->user()->hasVerifiedEmail()) {
                  return redirect()->route('verification.notice');
              }
      
              return redirect()->intended(config('fortify.home'));
          }
      }
      
    • 在app/Providers/FortifyServiceProvider.php的boot方法中绑定该响应:
      use App\Http\Responses\LoginResponse;
      use Laravel\Fortify\Contracts\LoginResponse as LoginResponseContract;
      
      public function boot()
      {
          // 保留原有其他配置
          $this->app->bind(LoginResponseContract::class, LoginResponse::class);
      }
      

最后确认config/fortify.php中的home配置正确,且项目中存在verification.notice路由(Jetstream/Fortify环境下通常已自动生成)。

内容的提问来源于stack exchange,提问作者sunset-crow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:35:01