2011-12-09 41 views
0

我正在使用Tank Auth进行用户验证。我正在使用数据库存储会话并使用$this->auth->tank_auth->is_logged_in()来检查用户是否已登录。还使用HMVC,其中auth模块包含tank_auth。某些浏览器无法使用Tank Auth登录

问题:看来有些浏览器无法成功登录网站,包括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

使用各自的开发者工具扩展并调试会话cookie。 – mario

+0

Cookie似乎未存储在无法登录的Chrome上。我确实看到成功登录的Chrome上的Cookie。似乎cookie无法在Chrome上设置,无法正常工作?我在Chrome浏览器上看到其他网站的Cookie没有成功登录 – Nyxynyx

+0

请参阅浏览器设置。 – mario

回答

4

我已经看到它只在某些浏览器上运行之前,此问题。我找不到链接,但是我在某处读到它是DB中导致问题的useragent的varchar大小。解决方案是让它变大。

也许这将帮助

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

+0

你应该为此投票。对那些用晦涩难懂的答案发布问题的人感到羞耻,被像你这样的人解救出来,然后在没有简单的赞扬的情况下继续他们的一天。 – tpow

2

另一个需要注意的是在服务器和客户端之间的时间差。要么同步服务器和客户端之间的时间,要么选中“记住我”复选框