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); } }
만약 다른곳으로 리다이렉트를 원하시면 저 부분을 수정하시거나 별도의 미들웨어를 수정하는 방법이 있겠네요.
항상 감사드립니다!! ㅠㅠ 공부하는 법을 알려주시니 정말 좋은것같습니다!!
도움이 많이 되고있어요!!
도움이 많이 되고 있으시다니 다행입니다.
로그인 컨트롤러에서
public function __construct()
{
$this→middleware('guest');
}
아래와 같이 코딩하고 테스트를 해보면 로그인 상태로 로그인 컨트롤러가 컨트롤 하는 페이지에
접속을 하면 home << 이란 페이지로 redirect 되는데 home 이란 페이지 말고
다른 페이지로 커스텀 할수있는 방법좀 힌트좀 주시면 안될까요 ?? ㅠㅠ
protected $redirectTo = '/'; 도 메뉴얼에서 봤지만 저와는 다른 상황인것같아서 질문 드립니다 ㅠㅠ
현재저는 라라벨에서 기본으로 제공해주는 인증 기능을 그대로 받아쓰는게 아니라
직접 공부할겸 코딩해보고있습니다ㅠㅠ
guest middleware가 강제로 redirect 하는곳을 커스텀 하고싶어서요 ㅠㅠ