make:auth 명령으로 새로 만들어진 라우팅을 확인해 주세요. 핵심은 auth 라는 미들웨어입니다. /home 을 방문하면 등록된 auth 미들웨어가 작동합니다.
$ php artisan route:list +----------+------+-----------------------+--------------+ | Method | URI | Action | Middleware | +----------+------+-----------------------+--------------+ | GET|HEAD | home | HomeController@index | web,auth | +----------+------+-----------------------+--------------+
미들웨어는 여기에 등록되어 있습니다.
https://github.com/laravel/laravel/blob/master/app/Http/Kernel.php#L49
다음의 handle 메서드가 작동합니다.
https://github.com/laravel/framework/blob/5.3/src/Illuminate/Auth/Middleware/Authenticate.php#L39
로그인이 안되어 있으면 예외를 던집니다 (로그인 체크는 쿠키와 세션을 이용합니다).
https://github.com/laravel/framework/blob/5.3/src/Illuminate/Auth/Middleware/Authenticate.php#L66
예외는 이곳에서 핸들링합니다. 즉 /login 라우트로 강제 리디렉션합니다.
https://github.com/laravel/laravel/blob/master/app/Exceptions/Handler.php#L57
저도 이 부분에서 막혔는데... ㅠㅠ
저자님이 책 쓰실데랑 버전이 좀 바뀐것 같아요...
myapp\app\Exceptions\Handler.php
63 라인 보시면...
return redirect()→guest('login'); → 이 부분을
return redirect()→guest('auth/login'); → 저는 이렇게 수정해서 테스트해보고
진도 나가고 있습니다.. ^^;;
아마 의존성 문제로...
기존에 vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php 에서
하드코딩 되어있던 부분이..
예외를 던져주고, 그걸 외부에서 예외처리 핸들러로 처리하게끔...
바뀐것 같아요..
수수나무 이 라인 말씀이시군요.
예 정확히 짚으셨구요. 맞습니다.
이후에 또 막히는 내용 있으면 질문 남겨 주세요. 고맙습니다.
안녕하세요 라라벨 막 입문하기 시작한 초보 개발자입니다.
지금 회원가입 및 로그인 인증 페이지를 실습하는 도중에 궁금한 점이 생겨 여쭤봅니다.
실습하는 사이트 : https://laravel.kr/docs/5.3/authentication#introduction-database-considerations
본문에 나오는 App\Http\Controllers\Auth\AuthController 이 파일은 왜 저한테는 없는지 잘 모르겠으나
그냥 무시하고 php artisan make:auth 를 실행하였고
파일들이 다 생성되었습니다.
근데 localhost:8000/home 으로 들어가면 왜 /login 페이지로 넘어가는지
어떤 구조인지 도저히 모르겠습니다.
도움 부탁드립니다...