2011-12-09 3 views
0

사용자 인증을 위해 탱크 인증을 사용하고 있습니다. 데이터베이스를 사용하여 세션을 저장하고 $this->auth->tank_auth->is_logged_in()을 사용하여 사용자가 로그인했는지 확인합니다. auth 모듈에 tank_auth가있는 HMVC도 사용됩니다.일부 브라우저는 탱크 인증을 사용하여 로그인 할 수 없습니다.

문제 : 일부 브라우저는 IE8, Chrome 15.0.874.121 등의 웹 사이트에 성공적으로 로그인 할 수없는 것으로 보입니다. 이전 버전의 Chrome과 IE는 로그인 할 수 있습니다. 리다이렉트 추적을 수행 한 결과, 로그인시 사용자가 기본 페이지로 리다이렉트되며 여기서 is_logged_in() 체크가 실패하고 사용자를 다시 로그인으로 리디렉션합니다. 누구든지이 문제를 알고 있습니까?

Config.php에

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

CI 컨트롤러 코드

function index() { 
    $this->load->module('auth'); 
    if(!$this->auth->tank_auth->is_logged_in()) { 
     redirect('login'); 
    } 

    $this->load->view('main'); 

} 
+0

를 사용하여 각각의 개발자 도구 확장을 확인하고 세션 쿠키를 디버깅합니다. – mario

+0

로그인 할 수없는 Chrome에는 쿠키가 저장되지 않은 것으로 보입니다. 성공적으로 로그인 한 Chrome에 쿠키가 표시됩니다. 쿠키 캔트가 작동하지 않는 Chrome에 설정되어있는 것처럼 보입니까? Chrome에 다른 웹 사이트의 쿠키가 표시되어 성공적으로 로그인하지 못했습니다. – Nyxynyx

+0

브라우저 설정을 참조하십시오. – mario

답변

4

나는 그것이 일부 브라우저에서 작동 어디 전에이 문제를 보았다. 링크를 찾을 수 없지만 문제를 일으키는 DB의 사용자 에이전트의 varchar 크기를 읽었습니다. 해결책은 그것을 더 크게 만드는 것이 었습니다.

어쩌면이

http://codeigniter.com/forums/viewthread/197101/

+0

투표 할 자격이 있습니다. 애매한 대답으로 질문을 게시하고, 당신 같은 사람이 구제 금융을 받고, 간단한 upvote없이 하루를 진행하는 사람들에게 부끄러움. – tpow

2

을 다른주의해야 할 점은 서버와 클라이언트 사이의 시간 차이입니다 도움이 될 것입니다. 어느 서버와 클라이언트 사이의 시간을 동기화하거나 "기억 나"확인란

관련 문제