2014-09-19 2 views
0

Google 크롬에서 내 웹 사이트 탭을 열고 다른 탭이 열려있는 경우 내 웹 사이트 탭을 닫으면 세션이 손상되지 않습니다. 세션을 파괴하려면 모든 탭을 포함하여 전체 브라우저를 닫아야합니다. 어쨌든 나는 그들이 웹 사이트의 탭만 닫을 때 전체 브라우저가 아닌 사용자를 로그 아웃 할 수 있습니까? codeIgniter를 사용하고 있습니다. 구성 설정은 다음과 같습니다.브라우저에서 사이트를 닫은 후 PHP 세션이 손상되지 않습니까?

$config['sess_cookie_name']  = 'ci_session'; 
$config['sess_expiration']  = 0; 
$config['sess_expire_on_close'] = TRUE; 
$config['sess_encrypt_cookie'] = FALSE; 
$config['sess_use_database'] = FALSE; 
$config['sess_table_name']  = 'ci_sessions'; 
$config['sess_match_ip']  = FALSE; 
$config['sess_match_useragent'] = TRUE; 
$config['sess_time_to_update'] = 300; 
+0

응용 프로그램에 로그 아웃이 중요한 경우 로그 아웃 버튼을 사용해야합니다. – Sharky

+0

로그 아웃 버튼이 있지만 사용자가 로그 아웃 버튼을 누르지 않고 사이트를 닫아도 로그 아웃되기를 원합니다. – user1906399

+0

링크를 클릭하고 탭을 닫거나 새 탭을 여는 데는 고유 한 차이가 없습니다 페이지의 URL을 직접 입력하십시오. 두 경우 모두 고유 한 "연결 유실"또는 이와 같은 문제는 없습니다. 탭이 닫힐 때 세션을 끝내는 것은 완전히 임의적 인 결정입니다. 브라우저는이 결정에 귀하의 의견을 공유하지 않습니다. 다른 말로하면 : 그것은 신뢰성있게 가능하지 않습니다. – deceze

답변

0

PHP는 24 분 동안 사용하지 않으면 자동으로 세션을 종료합니다. (이것이 사실이 아니라면 나를 고쳐주세요.하지만 그렇게 생각합니다.) 이것이 원하는 것이 아니라면, 만료 시간을 매우 짧게 변경하고 매 순간 아약스를 통해 확인할 수 있습니다.

세션 데이터를 데이터베이스에 저장 하시겠습니까? 만료 된 세션을 자동으로 삭제하는 PHP 스크립트를 작성하지 않는 이유는 무엇입니까? 당신은 cronjob로 시작할 수 있습니다.

+0

세션이 무효화되는시기를 구성 할 수 있습니다. 24 분이 하드 코딩되지 않았거나 아무것도 아닙니다. – deceze

+0

네, 구성 할 수 있다는 것을 알고 있습니다. 나는 1440 초 (24 분)로 설정되어있는 기본 세션 타임 아웃을 의미했다. –

관련 문제