2015-04-28 5 views
1

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

ответ

1

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

Смежные вопросы