【Laravel5.5】新規登録時に自動ログインをさせない方法

 どうも、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の新規会員登録時に自動でログインさせないようにする方法を紹介させていただきました。ご参考になれば幸いです!

 それでは、今回はここまで!また!

お仕事のご相談・ご依頼
お気軽にお問い合わせください!

お仕事の依頼はこちら

著者プロフィール

Taka

東京、奄美大島を拠点にサーフィンとスノーボードが好きなフリーランスのWebクリエイターです。普段はプログラム書いたりデザインしたり映像作ったりしています。いろいろな人の話しを聞くのが好きなので、このブログを通して多くの人と繋がりが出来たら嬉しいです。noteとInstagramもやっているのでフォローしてくれたらありがたいです!

人気記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です