我是第一次使用 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 身份验证系统,但同时又满足我的需求。我可以以某种方式扩展这个类并重写这些方法,还是我必须完全编写自己的类?