2013-08-26 47 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); 
    } 
} 

这样做:-)