config('session.lifetime') 동안 아무런 액션이 없으면 세션이 지워집니다. 아래와 같이 실험해 보시겠어요.
앗.. 일단 그 방법은 여러차례 시도를 해 보았습니다.
vagrant 랑 같이 사용하는데 가상머신하고 프로젝트에 둘 다 혹시 몰라서
php artisan cache:clear
php artisan config:clear
캐쉬 삭제 구문도 돌려보고 해봤는데도 여전히 로그인세션이 유지되더라구요..
유저로 로그인 한다 → 그 상태로 몇 분간 놔둔다 → 리프레쉬 해본다.
이 과정을 반복해봤는데도 여전해서.. 결국 미들웨어로 만들어서 쓰는건데 왜 안되는지 이유를 모르겠어요 ㅠㅠ
1. 로그인 직후 / lifetime 설정 시간 이후로 아래 덤프 값을 비교해 보셨나요?
2. 라라벨 프로젝트를 새로 하나 만들어서, 인증을 위한 최소의 코드만 짜서 config('session.lifetime')의 작동 여부를 확인. 여전히 안되면, PHP 세션 관련 매뉴얼을 읽고 PHP 설정 쪽을 디버깅해야 할 것 같아요.
그리고, 세션의 기본 저장소는 파일 시스템이기때문에, 로드밸런서 뒤에 애플리케이션이 있다면 애플리케이션간 세션은 공유되지 않습니다. 이때는 세션을 공유할 수 있는 드라이버(redis 등)로 바꿔야 합니다.
그리고, 로그인 후 Set-Cookie 응답 헤더에 달린 만료 시간도 관찰하면 좋겠습니다.
WOW 답변 감사드립니다. 그 부분은 아직 안 해봤습니다. 그것도 한 번 실험해봐야 되겠군요.
일정 시간이 지나면 자동으로 로그아웃되는 세션 타임아웃을 어떻게 설정해야 하는지 모르겠습니다.
config/session.php 에서 lifetime 항목을 조정하거나,
php.ini 관련 항목을 설정해줘도 자동적으로 로그아웃이 안 되더라구요 ㅠㅠ
그래서 로그인할 때 세션시작 시간을 정하고, 요청할 때마다 미들웨어에서 로그아웃하도록 하고 있습니다.
동작은 제대로 합니다만, 편법인 것 같아서 제대로된 방법을 알고싶습니다.
어떻게 하면 됩니까?