티스토리 뷰



Laravel 5.3 부터 이전(5.2) 에 사용하던 방식인 Auth/AuthController.php 통합 방식이 변경되어


ForgotPasswordController.php - 비밀번호 찾기

LoginController.php - 로그인

RegisterController.php - 가입

ResetPasswordController.php - 비밀번호 초기화




파일 4개로 쪼개 졌습니다. 각각은 이름대로의 역할을 하는대요. 


그렇다면? middleware auth 리다이렉트는 어떻게 처리 해야 되는가?


/app/Exceptions/Handler.php 에 보시면 최 하단에


    protected function unauthenticated($request, AuthenticationException $exception)
    {
        if ($request->expectsJson()) {
            return response()->json(['error' => 'Unauthenticated.'], 401);
        }

        return redirect()->guest('login');
    }


위와 같은 코드가 있습니다. 위에서 


return redirect()->guest('login');

위를 아래와 같이 변경

return redirect()->guest('/noAuth');


위와 같이 변경하지면 auth middleware 가 원하시는대로 변경 되는 것을 확인 하실 수 있습니다.




* 추가로 Route 에 Middleware 사용 방법에 대해 모르신다면 ... ( 찾아 들어 올 일도 없었겠지만 )


간단히 설명 드리자면 5.3 기준으로 routes/web.php 에 아래와 같이 추가해 주도록 합니다.


Route::group(['middleware' => 'auth'], function () {
	
	Route::get('/', 'PageController@main');
});

Route::get('/noAuth', function () {
	abort(404,'Page not found');
});


위와 같이 추가해 준다면 auth group 안의 Route 들은 전부 Exceptions/Handler 에서 지정한 Route 로 이동하게 됩니다.


즐거운 개발 되시기 바랍니다. ^^



공유하기 링크
댓글