CI 묻고 답하기

제목 CI 자동 로그인 세션 관련 질문입니다(검색 해본 후 질문..)
글쓴이 피스트 작성시각 2013/01/15 16:42:50
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 22166   RSS
안녕하세요
다름이 아니라 사용자가 로그인 시,

자동 로그인을 체크하지 않았을 경우에는
브라우저를 닫으면 자동으로 세션이 파기되도록 하고

체크하였을 경우에는
브라우저를 끄고 다시 열었을경우에도 세션이 남아있어
자동로그인이 되도록 하고싶습니다.

찾아보니
config.php에 $config['sess_expire_on_close'] = TRUE; 항목이 있어서 
이것을 기본  TRUE로 설정하고
자동로그인을 체크할때는 $this->config->set_item('sess_expire_on_close', 'FALSE') 와 같이 변경하여
브라우저를 껏다 켜도 세션이 남아있도록 하려고 아래코드와 같이 하려고 했.었.으나...

 if($auto_check ==0) {
       $this->config->set_item('sess_expire_on_close', 'TRUE');
  }
  else {
       $this->config->set_item('sess_expire_on_close', 'FALSE'); 
}
 
설정이 계속 리셋됩니다. 아마 config.php 에 저장한 값들로 계속 덮어쓰는 것 같은데..

이럴경우 자동로그인 보통 어떻게 구현하시는지요?




 다음글 도와주세요!!!ㅠ.ㅠ (2)
 이전글 페이지네이션 질문입니다. (1)

댓글

피스트 / 2013/01/15 16:44:26 / 추천 0
 제가 생각해본 방법으로는 sess_expire_on_close을 기본 FALSE로 두고
자동 로그인을 체크하지 않을 경우
브라우저를 끄는것을 감지하여 세션 파기하는 코드를 삽입하면 될 것 같은데.. 다른 방법 있을까요

피스트 / 2013/01/15 16:47:02 / 추천 0
 아니면 php native session과 쿠키를 이용하여
자동로그인 체크시, 클라이언트 브라우져에 쿠키를 남겨서 사이트 접속시 쿠키유무를 체크하고
체크 안할시 세션을 쓰는 방식을 써도 될 것 같은데.. 뭔가 더 깔끔한 방법 없을까요
피스트 / 2013/01/15 17:12:13 / 추천 0
 자문자답입니다.

세션 객체 내 변수에 직접 접근,
 $this->session->sess_expire_on_close = TRUE; 이런식으로 설정해주면
세션마다 따로 적용됩니다;;;;

 config.php 파일의 설정을 동적으로 바꾸는 것은
세션 라이브러리 로딩 전후 타이밍과 관계가 있다고 하네요;
http://ellislab.com/forums/viewthread/157027/