我在Laravel 5.4的注册过程中添加了电子邮件验证。我也在使用内置的Auth配置。我现在想在验证过程中添加“已验证”参数。这曾经在5.x的早期版本中工作,但我现在无法工作。
编辑此文件:
project\vendor\laravel\framework\src\Illuminate\Foundation\Auth\AuthenticatesUsers.php
我通常会添加登录验证的“已验证”部分。
protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->loginUsername() => 'required',
'password' => 'required',
'verified' => 1,
]);
}
现在这似乎不适用于5.4。我可以在没有验证为真的情况下登录。有没有其他方法可以改变这一点而不触及任何后端类或特征?我可以在LoginController中执行此操作,以便更容易在Laravel升级中保留吗?
答案 0 :(得分:1)
是的,你可以做到。将其添加到您的LoginController
use Illuminate\Http\Request;
protected function credentials(Request $request)
{
return array_merge($request->only($this->username(), 'password'), ['verified' => 1]);
}
永远不要修改核心文件。您始终可以覆盖控制器中的核心类方法。