5

私に何が起こるかというと、ユーザーが project.test/med という URL を入力すると、システムはログインにリダイレクトされますが、ダッシュボードではなく med にリダイレクトされます。RedirectIfAuthenticated では、式 Auth::guard($guard)->check() が評価されないか、少なくともログに表示されないため、何が起こっているのかを特定できません。

/** RedirectIfAuthenticated.php */
    public function handle($request, Closure $next, ...$guards)
    {
       $guards = empty($guards) ? [null] : $guards;
       Log::info($request);
       Log::info(Auth::user());
       foreach ($guards as $guard) {
         Log::info(Auth::guard($guard)->check());
         Log::info(Auth::check());
         if (Auth::guard($guard)->check()) {
            return redirect(RouteServiceProvider::HOME);
         }
      }
      Log::info(Auth::check());
      Log::info('end');
      return $next($request);
    }

    /** web.php */
     Route::middleware(['auth:sanctum', 'verified'])->get('/dashboard', function () {
         return Inertia\Inertia::render('Dashboard');
    })->name('dashboard');
    
    Route::middleware(['auth:sanctum','verified'])->get('/med', function (Request $request) {
         return Inertia\Inertia::render('Med');
    })->name('med');
4

4 に答える 4

11

config/fortify.phpに移動して、次の行を変更します。

'home' => RouteServiceProvider::HOME,

に:

'home' => function(){
    //if you want to go to a specific route
    return route('dashboard');
  
    //or if you have a bunch of redirection options
    if (Auth::user()->hasRole('admin')) {
       return route('admin.dashboard');
    }
    else{
       return route('guest.dashboard');
    }
}
于 2021-02-20T13:58:29.750 に答える