Laravel 5.6.27以降でログアウト後のリダイレクト先を変更したいなら、logout()ではなくloggedOut()をオーバーライドする

5.7で開発中なんだが、ログアウト後のリダイレクト先を変更するのどうしたらいいか調べてたら、ソースコードを読む感じIlluminate\Foundation\Auth\AuthenticatesUsersloggedOut()をオーバーライドするのがよさそうだったのだが、ググると同じクラスのlogout()をオーバーライドする例ばかり出てくる。

なぜかなーとgit blameしたところ、割と最近実装されたメソッドのようで、そのせいだろう。

Update AuthenticatesUsers.php · laravel/framework@e4a00e8 · GitHub

ということで、5.6.27以降ならloggedOut()が使えるので使おう。

<?php
# ...
class LoginController extends Controller
{
    use AuthenticatesUsers;
    # ...
    protected function loggedOut(Request $request)
    {
        return redirect(route('my_login'));
    }
    # ...
}

とかそんな感じでよさそう。

認証周りのカスタマイズの知見いろいろ溜まってきているので、そろそろ一回まとめたいなー。