php-如何更改内置的Laravel 5身份验证系统?

我是第一次使用Laravel 5.我已经与4一起工作. Laravel附带了AuthenticatesAndRegisterUsers.php文件,该文件可以处理大多数内容,并使注册和登录用户非常容易.

我想根据自己的需要调整此文件,例如不登录用户,而是向他们发送激活链接,并检查用户是否在登录时被激活.

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身份验证系统,但在此过程中也适合我的需求.我可以以某种方式扩展此类并重写方法,还是必须完全编写自己的类?

最佳答案
您可以在AuthController(或使用特征的任何控制器)中覆盖这些方法.只需将两个函数复制过来,就可以了.

转载注明原文:php-如何更改内置的Laravel 5身份验证系统? - 代码日志