CI 묻고 답하기

제목 세션관리랑 중복로그인 처리에 대한 질문드립니다.
글쓴이 이노 작성시각 2016/03/07 09:44:58
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 14922   RSS

$config['sess_driver'] = 'database';

$config['sess_cookie_name'] = 'ci_session';

$config['sess_expiration'] = 0;

$config['sess_save_path'] = 'session';

$config['sess_match_ip'] = FALSE;

$config['sess_time_to_update'] = 600;

$config['sess_regenerate_destroy'] = TRUE;

$config['sess_expire_on_close'] = TRUE;

설정은 이렇게되있구요. 중복 로그인은 db에 세션값 찾아서 결과 반환하고있는데요

브라우저 강제 종료시에 쿠키?값은 destory가 되서 로그인은 풀리는데

db에 세션은 destroy가 안되서 중복로그인 체크가 어렵습니다.

브라우저 강제 종료시에 db세션값을 삭제할려면 설정값 바꿔야되는 부분이 있는지요?

그리고 세션 유지시간을 3시간으로 바꾸면 브라우저 강제종료 할때 로그인이 유지가 되는데

세션 유지시간을 늘였을경우에도 브라우저 강제 종료시 세션destroy 하는 방법은없는지요?

 다음글 ci 내부 함수중에 폴더 삭제가 되는거좀 자세히 알려주... (1)
 이전글 서버에 코드이그나이터 설치해서 서비스 하려는데... (2)

댓글

이노 / 2016/03/07 10:34:19 / 추천 0
버전은 3.x 대사용하고있습니다.
변종원(웅파) / 2016/03/07 11:51:49 / 추천 0

중복로그인은 세션아이디로 하는게 아니라 실제 로그인한 값인 user_data의 값을 가지고 체크하셔야 합니다.

사이트 접속하면 세션은 무조건 만들어집니다. 

user_data 를 like 검색해야해서 비추합니다.

ci만으로는 중복로그인 체크하기 힘듭니다. ^^;;

kaido / 2016/03/07 12:02:42 / 추천 0

중복로그인 체크를 세션으로 완벽하게 처리 가능한 것은 사실상 자바 뿐이 없습니다.

이유가 있는데, 자바의 세션은 VM 이라는 가상 머신 프로세스에 박히거든요.

그래서 유지와 비교가 됩니다.

이노 / 2016/03/07 12:26:10 / 추천 0

브라우져 강제종료시 db세션 삭제 하는 방법은 없는건가요?

변종원(웅파) / 2016/03/07 13:17:51 / 추천 0
이노/ 강제종료했는지를 확실하게 알 수 있는 방법이 없어요. ^^;
kaido / 2016/03/07 13:31:43 / 추천 0

@이노

하다못해 X 버튼이라도 누르면 이벤트가 있는데, 강제종료에 대해서는 어떤 방법으로도 체크가 불가능 합니다.

이는 브라우저와 http 통신의 특징 입니다.