Laravel でメール認証をするとき登録時にログイン状態にしない。

Laravel でメール認証を設定すると、自動的にログイン状態になってしまいます。それを避ける方法です。

auth ミドルウェアを外します。

app/Http/Controllers/Auth/VerificationController.php

    public function __construct()
    {
        $this->middleware('auth');
        $this->middleware('signed')->only('verify');
        $this->middleware('throttle:6,1')->only('verify', 'resend');
    }

  ↓ auth ミドルウェアをコメントアウト

    public function __construct()
    {
        // $this->middleware('auth');
        $this->middleware('signed')->only('verify');
        $this->middleware('throttle:6,1')->only('verify', 'resend');
    }

VerificationController.phpに verify メソッドを追加する

app/Http/Controllers/Auth/VerificationController.php

    /**
     * 
     * メールアドレス確認(メソッドのオーバーライド)
     * 
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     *
     */
    public function verify(Request $request)
    {
        $user = \App\User::find($request->route('id'));
    
        if (!hash_equals((string) $request->route('hash'), sha1($user->getEmailForVerification()))) {
            throw new AuthorizationException;
        }
    
        if ($user->markEmailAsVerified())
            event(new \Illuminate\Auth\Events\Verified($user));
    
        return redirect($this->redirectPath())->with('verified', true);
    }

これでokです。