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

另一個需要注意的是在服務器和客戶端之間的時間差。要麼同步服務器和客戶端之間的時間,要麼選中「記住我」複選框