제목 | 사용자마다 세션 만료 시점을 다르게 하려면.. | ||
---|---|---|---|
글쓴이 | 쿨교 | 작성시각 | 2013/10/30 14:21:15 |
|
|||
안녕하세요. 사용자마다 세션 만료 시점을 다르게 하려면.. 어떻게 해야할까요 ?? 제가 이렇게도 해보고 저렇게도 해보는데 잘 안되네요 ;; 현재 세션은 DB가 아닌 CI에서 제공하는 세션 사용중입니다. 일단 A사용자는 무제한 세션이 필요하고 B사용자는 5시간 세션이 필요합니다. if (아래 구운 쿠키가 있다면) { $this->ci->load->library('session', array('sess_expiration' => 쿠키구운값)); } else { $this->ci->load->library('session'); } if (쿠키가 없거나 쿠키가 변경되지 않았다면) { // 쿠키 굽기 $this->ci->input->set_cookie('sess_expiration', 사용자에 따른 세션 유지 기간, 2년); } 세션 라이브러리를 autoload로 못하고 후킹으로 하고 있습니다. 이유는 A사용자인지 B사용자인지 세션을 먼저 체크를 해야하고 세션 로드할때만 sess_expiration 이 설정이 가능한 것 같드라구요. 그리고 sess_time_to_update 값은 항상 sess_expiration 값의 10분의 1로 설정되게 하였습니다. 근데 이게 작동은 하는 것 같은데 세션이 자꾸 끊어지드라구요. 뭔가 좋은 방법 없을까요 ;; |
|||
다음글 | css나 js 파일의 캐싱이 안되게 하는 방법이 있나요... (6) | ||
이전글 | AR(액티브레코드) 캐싱은 필수입니까? (2) | ||
쿨교
/
2013/10/30 14:44:50 /
추천
0
|
taegon
/
2013/10/30 15:53:43 /
추천
0
sess_expiration를 설정해서 처리하는 것 보다는
로그인 시 혹은 변동 사항이 있을 때 로그인 유지할 수 있는 시간을 기록하고 웹 페이지 로딩 시 유지시간을 체크해서 세션을 날리는 형식으로 하는 것이 좋아보입니다. |
쿨교
/
2013/10/30 17:08:35 /
추천
0
taegon 님 말씀은
세션 유지 기간을 일단 길게 잡아놓고 로그인시 해당 사용자의 허용 유지 기간 체크 한 후에 매 페이지 로딩 시 마지막 활동 시간을 기록 후 매 페이지 로딩 시 마지막 활동과 현재 시간을 비교 후 허용 유지 기간이 넘어섰으면 세션 삭제를 하란 말씀이신거죠? 감사합니다. 그렇게 처리 해보겠습니다!! |
후킹으로 안하고 사용자에 따라서 세션주기를 바꾸는 방법이 없을까요?