ある日、laravelのログを見ていると、Route [login] not defined.というエラーが発生していました。

どうやら、存在しないURLやtoken認証が外れたときにサイトへアクセスすると、デフォルトの設定ではLoginへ遷移するようです。

今のシステムにはloginというRouteは存在しないので、エラーとなっていたようです。

Routeにloginが存在しないことが原因ですが、サイトの仕様によってはloginが無い場合もあります。

そこでlogin以外に遷移させたい場合には、app\Http\Middleware\Authenticate.phpを修正しましょう。

# app\Http\Middleware\Authenticate.php

class Authenticate extends Middleware
{
    /**
     * Get the path the user should be redirected to when they are not authenticated.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return string|null
     */
    protected function redirectTo($request)
    {
        if (! $request->expectsJson()) {
            return route('login');
        }
    }
}

return route(‘login’)の部分を変更すればOKです。