どうも、Laravelユーザーのみなさんお元気でしょうか?
今回はLaravelの新規会員登録時に自動ログインをさせないようにする方法を紹介したいと思います。
なお、Laravelとはなんぞやという方は下の記事を参照してください!
環境
今回の環境は下記の通りとなります。
今回の環境
- Laravel 5.5
自動ログインを解除する
Laravelは会員登録機能がartisan一発で実装できるということもありとても便利なのですが、デフォルトの仕様では新規会員登録時に自動ログインされる仕組みになっています。これはこれでユーザビリティ的にも快適なのですが、場合によっては自動ログインさせたくないケースもあるかと思います。
そこで、自動ログインさせないためにはどうするのかというと至って簡単です。新規会員登録メソッドをオーバーライドしてあげて自動ログインをしているコードを削除してあげればいいわけです。
では、実際にコードを見ていきましょう。
まずは、Laravelをインストールしたら下記のコマンドを叩いて会員登録機能をアクティブ化します。
php artisan make:auth
次に、自動ログイン処理をしているコードをオーバーライドします。
自動ログイン処理は、下記のファイル(vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php)のregisterメソッド内の8行目に書かれています。
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
このメソッドを丸々コピーして、下記ファイル(app/Http/Controllers/Auth/RegisterController.php)に追記して該当のコード(8行目)をコメントアウトするか削除します。
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
//$this->guard()->login($user);
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
これで自動ログイン処理は解除されます。
まとめ
ということで、今回はLaravelの新規会員登録時に自動でログインさせないようにする方法を紹介させていただきました。ご参考になれば幸いです!
それでは、今回はここまで!また!