Как изменить встроенную систему аутентификации Laravel 5?

Я работаю с Laravel 5 впервые. Я работал с 4 ранее. Laravel поставляется с файлом AuthenticatesAndRegisterUsers.php, который обрабатывает большинство вещей и упрощает регистрацию и вход пользователей.

Я хотел настроить этот файл в соответствии со своими потребностями, например, не регистрировать пользователя, а вместо этого отправлять ему ссылку для активации и проверять, активируется ли пользователь при входе в систему.

после входа

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(),
                    ]);
    }

зарегистрировать

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, но при этом удовлетворить и мои потребности. Могу ли я как-то расширить этот класс и переопределить методы, или мне придется полностью написать свой собственный класс?


person Rohan    schedule 28.04.2015    source источник


Ответы (1)


Вы можете просто переопределить эти методы в AuthController (или любом другом контроллере, который использует трейт). Просто скопируйте обе функции, и все готово.

person lukasgeiter    schedule 28.04.2015