我在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升级中继续存在吗?
是的,你可以做到。 将此添加到您的LoginController
use Illuminate\Http\Request;
protected function credentials(Request $request)
{
return array_merge($request->only($this->username(), 'password'), ['verified' => 1]);
}
切勿修改核心文件。 您始终可以在控制器中覆盖核心类方法。