laravel 新用户登录时的中间件重定向

laravel middleware redirection when new user logged in

我想在用户首次登录时重定向到新页面 time.Otherwise 用户将转到正确的 path.The 问题是当我将路由重定向到 sign_up处理调用的路由,它再次将我发送到相同的中间件,所以有一种循环 generated.Please 告诉我如何处理它。

namespace App\Http\Middleware;


use Closure;
use Illuminate\Http\Request;

class TutorMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next, $guard=null)
    {
        if (\Auth::guard($guard)->check() && \Auth::user()->type == '3'){
          //  if ($request->ajax() || $request->wantsJson()) {
           //     return response('Unauthorized.', 401);
          //     } 
            // else { return redirect()->guest('/home'); 
          if(\Auth::user()->first_time_login==false){
            // redirecting infinitely  
            // there must be a condition that check if i am not in the tutor.signup_process route
            return redirect()->route('tutor.signup_process');
          }      
        }
        else{
            return redirect()->guest('/login/join_as_a_tutor');
        }
        return $next($request);
    }
}

我找到了解决方法,方法如下:

public function __construct()
{
    $this->middleware(function ($request, $next) {
        $this->tutor = \Auth::user();

        if ($this->tutor->first_time_login == true && !\Request::is('tutor/signup_process')) {
            return redirect()->route('tutor.signup_process');
        }

        return $next($request);
    });
}