2012-05-09 26 views
2

我不使用任何令牌。如何在Kohana 3 Auth模塊中列出當前記錄的用戶?

我知道這是可能得到當前使用的用戶是這樣的:

$user = $this->get_user(); 

我需要的功能,以檢查是否有用戶登錄:)

我想要做這樣的事情:

//extending Model_User: 
public function is_logged() 
{ 
//return true or false 
} 

//using in controller 

$user = ORM::factory('user'); 
$user->find($this->request->param('id')) 

if($user->is_logged()) 
{ 
    //do_something(); 
} 

回答

1

驗證模塊不存儲關於用戶會話的任何信息。您必須創建一個表,如(user_id, login_time, last_update_time, user_fingerprint)。其中user_fingerprint是一個獨特的令牌(用於檢驗,sha1(user_id + user_ip + user_agent))。在login/logout之後更新此表。 last_update_time將爲最後的用戶活動(頁面加載,ajax調用等)存儲時間戳,並且它可以用於通過超時過濾舊連接。