질문을 삭제하지 말아주세요.!
 
1
0
-1

로그인 컨트롤러에서

public function __construct()

{

$this→middleware('guest');

}

아래와 같이 코딩하고 테스트를 해보면 로그인 상태로 로그인 컨트롤러가 컨트롤 하는 페이지에


접속을 하면 home << 이란 페이지로 redirect 되는데 home 이란 페이지 말고 

다른 페이지로 커스텀 할수있는 방법좀 힌트좀 주시면 안될까요 ?? ㅠㅠ

protected $redirectTo = '/'; 도 메뉴얼에서 봤지만 저와는 다른 상황인것같아서 질문 드립니다 ㅠㅠ


현재저는 라라벨에서 기본으로 제공해주는 인증 기능을 그대로 받아쓰는게 아니라

직접 공부할겸 코딩해보고있습니다ㅠㅠ

guest middleware가 강제로 redirect 하는곳을 커스텀 하고싶어서요 ㅠㅠ


    CommentAdd your comment...

    1 answer

    1.  
      1
      0
      -1

      guest 미들웨어 소스를 보시면 편합니다.

      laravel에서 middleware의 설정은 기본적으로 app/Http/Kernel.php에서 아래와 같은 소스 확인이 가능합니다.

      //app/Http/Kernel.php
      protected $routeMiddleware = [
          'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
          'auth.basic' => 
          'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
          'can' => \Illuminate\Auth\Middleware\Authorize::class,
          'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
          'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
      ];

      여기서 guest에 해당하는 클래스에 가시면 아래와 같이 판단해서 / 페이지로 리다이렉트 하는 로직을 보실 수 있습니다.

      //app\Http\Middleware/RedirectIfAuthenticated.php
      class RedirectIfAuthenticated
      {
          /**
           * Handle an incoming request.
           *
           * @param  \Illuminate\Http\Request  $request
           * @param  \Closure  $next
           * @param  string|null  $guard
           * @return mixed
           */
          public function handle($request, Closure $next, $guard = null)
          {
              if (Auth::guard($guard)->check()) {
                  return redirect('/');
              }
      
              return $next($request);
          }
      }

      만약 다른곳으로 리다이렉트를 원하시면 저 부분을 수정하시거나 별도의 미들웨어를 수정하는 방법이 있겠네요.

      1. 최윤석

        항상 감사드립니다!! ㅠㅠ 공부하는 법을 알려주시니 정말 좋은것같습니다!!

        도움이 많이 되고있어요!!

      2. 권윤학

        도움이 많이 되고 있으시다니 다행입니다. (smile)

      CommentAdd your comment...