Я работаю с Laravel 5 в первый раз. Я работал с 4 ранее. Laravel поставляется с файлом AuthenticatesAndRegisterUsers.php, который обрабатывает большую часть материала и упрощает регистрацию и регистрацию пользователей.Как изменить встроенную систему аутентификации Laravel 5?
Я хотел настроить этот файл в соответствии с моими потребностями, например, не регистрировать пользователя и вместо этого отправлять им ссылку активации и проверять, активируется ли пользователь при входе в систему.
postLogin
public function postLogin(Request $request)
{
$this->validate($request, [
'email' => 'required|email', 'password' => 'required',
]);
$credentials = $request->only('email', 'password');
if ($this->auth->attempt($credentials, $request->has('remember')))
{
if(!$this->auth->user()->activated)
{
$this->auth->logout();
return redirect($this->loginPath())
->withErrors(['activated' => 'Your account is not activated yet. <br /> Please check your email for activation link.']);
}
return redirect()->intended($this->redirectPath());
}
return redirect($this->loginPath())
->withInput($request->only('email', 'remember'))
->withErrors([
'email' => $this->getFailedLoginMessage(),
]);
}
postRegister
public function postRegister(Request $request)
{
$validator = $this->registrar->validator($request->all());
if ($validator->fails())
{
$this->throwValidationException(
$request, $validator
);
}
$this->registrar->create($request->all());
return redirect($this->loginPath())
->withErrors(['activated' => 'Activation link has been sent to your email address.']);
}
Это работает как шарм для меня, но потом я понял, что я редактировал файлы поставщика, чтобы удовлетворить свои потребности в этом файле находится внутри папки поставщика. И, конечно же, он не фиксирует контроль над версиями.
Таким образом, мой вопрос заключается в том, как использовать систему аутентификации Laravel 5, но в соответствии с моими потребностями тоже. Могу ли я каким-то образом расширить этот класс и переопределить методы, или мне придется полностью написать собственный класс?