2015-10-28 4 views
1

Я разрабатываю webapp с Laravel 5.1, и я строю систему аутентификации, и я должен проверить, не изменил ли пользователь пароль за шесть месяцев или более, и я использовал бы промежуточное программное обеспечение, чтобы проверить это, но я не нашел, как я могу это сделать правильно. Я создал глобальное промежуточное ПО, но он не работает, потому что я не могу получить аутентифицированного пользователя.Laravel 5.1 Middleware для проверки даты создания от пользователя для смены пароля

Возможно, мне нужно использовать AfterMiddleware для проверки пароля?

ответ

0

Сначала объясните/укажите, когда вы хотите, чтобы пользователь принудительно изменил пароль? При аутентификации или после успешной аутентификации? то я могу дать вам решение

+0

При аутентификации, поскольку я хочу получить пользователя и перенаправить на просмотр пароля сброса, но мне нужно знать, что он действительный пользователь. – xmarston

0

Затем вам нужно перезаписать метод postLogin в AuthController

общественная функция postLogin (Request $ запрос) {

$credentials = ['email' => $request->email, 'password' => $request->password]; 

    if (Auth::attempt($credentials, $request->has('remember'))) { 

     if((strtotime(Auth::user()->created_at) < strtotime('6 month ago'))){ 
     return redirect('your-reset-path);//redirect to password reset page 
     }else{ 
     return redirect()->intended('/'); 
     } 

    } 

    return redirect($this->loginPath()) 
     ->withInput($request->only('email', 'remember')) 
     ->withErrors([ 
      'email' => $this->getFailedLoginMessage(), 
     ]); 
    } 

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

+0

Ну, это то, что я делал в первую очередь, но потом я подумал, что если пользователь входит в другой URL-адрес, приложение должно проверить, не меняется ли пароль не только в функции postLogin, потому что у пользователя может быть другой URL-адрес в историю браузера и проверить кнопку «запомнить меня». – xmarston

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

  • Нет связанных вопросов^_^