私はすぐに使えるログイン機能を自分のLoginControllerに移して少し追加しました。私のログイン方法は、次のようになります。
/**
* Handle a login request to the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function login(Request $request)
{
$this->validateLogin($request);
$user = User::where('email', $request->email)->firstOrFail();
if ($user && !$user->active) {
return $this->sendLockedAccountResponse($request);
}
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request);
}
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}
私もアクティブでなかったユーザーを処理するために、これらの機能を追加しました:
/**
* Get the locked account response instance.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
protected function sendLockedAccountResponse(Request $request)
{
return redirect()->back()
->withInput($request->only($this->loginUsername(), 'remember'))
->withErrors([
$this->loginUsername() => $this->getLockedAccountMessage(),
]);
}
/**
* Get the locked account message.
*
* @return string
*/
protected function getLockedAccountMessage()
{
return Lang::has('auth.locked')
? Lang::get('auth.locked')
: 'Your account is inactive. Please contact the Support Desk for help.';
}
答えをありがとう。あなたが投稿したものを見ていますが、どうすれば自分のコントローラにすぐにログイン機能を移して、代わりに私がrpvoideを使用するのですか? – nameless
AuthControllerは、 'Illuminate \ Foundation \ Auth \ AuthenticatesUsers'からログインメソッドを継承します。そのクラスのログインメソッドをAuthControllerにコピーすると、Laravelは代わりにAuthControllerバージョンを使用します。あなたのニーズに合わせて修正することができます。 (これはLaravel 5.2のものですが、これらのクラス名は5.3と同じです) – jackel414
しかしAuthControllerとは何ですか?私が作成するだけの新しいコントローラ?それはいつ呼び出されますか?申し訳ありませんが少し混乱しています – nameless