无法取消电子邮件验证 Laravel

7

我原本认为在Laravel中启用电子邮件验证功能是一个好主意,但最终决定不使用它。然而,出于某种原因,当我从以下代码中删除['verify' => true]时,我现在会收到一个错误消息:

Auth::routes(['verify' => true]);

据我所记,从文档中也没有看到在其他任何地方激活它,但我可能是错的。

无论如何,希望能得到一些指导,我已经寻遍了各个角落,尝试反向激活等等。

当我删除['verify' => true]时,会出现以下错误信息:

enter image description here


请问您能否添加您的用户模型? - rpm192
1
你是否在你的User(或任何Notifiable)模型中实现了MustVerifyEmail合约?(class User extends Authenticatable implements MustVerifyEmail { ... }) - Kenny Horna
是的,但我认为它默认设置好了,并且当您传递verify=true参数时会被调用。如果没有验证电子邮件,它应该长什么样? - The Ginger Fox
2
请勿发布代码和错误消息的截图。将文本复制粘贴到问题中,以便其他遇到相同问题的人可以找到它。 - Don't Panic
3个回答

11
取消电子邮件验证:

从web.php中的Auth::routes()移除['verify' => true]
从用户模型中移除"implements MustVerifyEmail"

我做到了。结果:“目标类[已验证]不存在。”,“异常”:“Illuminate \ Contracts \ Container \ BindingResolutionException”。 - Arthur Shlain
我在 kernel.php 中将“verified”中间件重新启用,现在出现错误:“您的电子邮件地址未经验证。” - Arthur Shlain
我认为这是因为在注册后我关闭了自动登录。验证中间件会返回错误信息“您的电子邮件地址未经验证”,如果用户没有登录。 - Arthur Shlain
1
已解决。要修复问题,还需要从 routes/web.php 组中删除所有 verified 中间件。 - Arthur Shlain

3

AuthController.php 中注释掉 // $user->sendEmailVerificationNotification();

App\Models\User.php 中注释掉 // implements MustVerifyEmail


2

取消电子邮件验证:

  1. web.php中添加以下行:
Auth::routes(['verify' => false]);
  1. 从用户模型中移除MustVerifyEmail接口
class User extends Authenticatable implements MustVerifyEmail
{
 ...
}

class User extends Authenticatable
{
 ...
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接