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

如何在Laravel 8中实现自定义邮箱验证,解决verification.verify路由未定义报错

报错原因

你在路由组中同时使用了Laravel自带的verified邮箱验证中间件,该中间件依赖Laravel默认的邮箱验证路由体系,需要存在命名为verification.verify的路由才能正常生成验证链接、完成跳转逻辑,你未定义该路由所以触发报错。

解决方法

方案1:完全使用自定义邮箱验证逻辑(适配你已经写好的WereEmailVerified中间件)

你已经自行实现了验证判断中间件,不需要用到Laravel自带的验证体系,直接修改路由组的中间件配置即可:

  1. 先确认你已经在app/Http/Kernel.php的$routeMiddleware数组中注册了自定义中间件的别名,示例:
protected $routeMiddleware = [
    // 其他中间件
    'email.verified' => \App\Http\Middleware\WereEmailVerified::class,
];
  1. 修改web.php中的路由组配置,删掉自带的verified中间件,替换成你自己注册的中间件别名:
Route::group(['middleware' => ['auth','email.verified']], function() {
     // 你的路由
});

方案2:保留Laravel自带邮箱验证能力

如果需要用到Laravel默认的验证通知、验证链接生成等能力,直接在web.php中注册默认的邮箱验证路由即可:

// 放在路由定义最前面即可
Auth::routes(['verify' => true]);

这行代码会自动生成verification.verify等邮箱验证相关的命名路由,满足自带verified中间件的依赖要求。

注意事项

  • 你的自定义中间件返回提示存在拼写错误:Verif改为Verify,ACCESS改为Access即可。
  • 如果完全走自定义验证逻辑,不要使用Laravel默认的VerifyEmail通知类,该类会自动生成指向verification.verify路由的链接,未定义该路由时同样会触发报错,你需要自行实现验证通知类,生成指向你自定义验证处理接口的链接。

内容的提问来源于stack exchange,提问作者Young L.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:57:03