2013-08-26 50 views
1

我做了一個自定義的駕駛Auth_MyDriver「擴展驗證Kohana Auth自定義驅動程序,模型用戶?

我看這裏如何:http://kohanaframework.org/3.2/guide/auth/driver/develop

而且從「test_users」,而不是那樣的話,使用這個驅動程序時,它搶/登錄的用戶「users

現在,當我使用自定義驅動程序「MyDriver」的Auth::instance()->get_user()返回與username的字符串。

當我使用默認的「orm」身份驗證的驅動程序,並調用Auth::instance()->get_user()它返回一個整體對象與用戶數據都來自用戶表抓住,所以你可以調用例如Auth::instance()->get_user()->email

我怎樣才能讓我的自定義驅動程序像默認的orm auth驅動程序一樣工作,除了它應該只是查找test_ *表(而不是test_users,test_roles,test_roles_users)

我花了數小時試圖找出,我認爲它是關於模型用戶,爲了做到這一點,我需要我的自定義驅動程序?

希望有任何幫助謝謝!

更新:

我MyDriver,擁有相同的方法驗證文件駕駛員

public function get_user($default = NULL) 
{ 
    return $this->_session->get($this->_config['session_key'], $default); 
} 
+0

您是否改變驅動程序中的get_user方法和/或使用會話? – kero

+0

@kingkero檢查我的更新,我的自定義驅動程序使用與文件驅動程序相同的get_user() – Karem

回答

1

最後:

我只是抓住了從數據庫中的用戶,變成了一個對象,併發送with complete_login:

$user = DB::select()->from($table_name) 
->where('username', '=', $username) 
->as_object()->execute()->current(); 

if(!empty($user)) 
{ 
    if($password == $user->password) 
    { 
     return $this->complete_login($user); 
    } 
} 

這樣做:-)