我正在開發一個Web應用與Laravel 5.1和我建立了認證系統,我要檢查,如果在半年內用戶並沒有改變他的密碼或更多,我會用一箇中間件來檢查,但我沒有找到如何正確地做到這一點。我創建了一個全局中間件,但它不起作用,因爲我無法獲取經過身份驗證的用戶。Laravel 5.1中間件從用戶檢查創建日期更改密碼
這可能是我必須使用AfterMiddleware檢查密碼?
我正在開發一個Web應用與Laravel 5.1和我建立了認證系統,我要檢查,如果在半年內用戶並沒有改變他的密碼或更多,我會用一箇中間件來檢查,但我沒有找到如何正確地做到這一點。我創建了一個全局中間件,但它不起作用,因爲我無法獲取經過身份驗證的用戶。Laravel 5.1中間件從用戶檢查創建日期更改密碼
這可能是我必須使用AfterMiddleware檢查密碼?
當你想用戶強制更改密碼先解釋一下/狀態? 認證時或認證成功後? 那麼我可以給你解決
然後,您需要覆蓋的方法postLogin在AuthController
公共職能postLogin(請求$要求){
$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)的另一個字段,該字段只會在更改密碼時以及第一次創建時更新,效率更高。
嗯,這是我在做的第一個地方,但後來我認爲,如果用戶輸入另一個URL應用程序必須檢查密碼是否更改,不僅在postLogin函數,因爲用戶可以有另一個URL在瀏覽器歷史記錄,並檢查記住我的按鈕。 – xmarston
進行身份驗證時,因爲我想獲得用戶重定向到重置密碼的看法,但我需要知道它是一個有效的用戶。 – xmarston