Authentication Kohana Auth自定义驱动程序,模型用户?
我制作了一个自定义驱动程序“Auth_MyDriver”,它扩展了Auth 我在这里看到了如何: 这样,当使用此驱动程序时,它从“Authentication Kohana Auth自定义驱动程序,模型用户?,authentication,kohana,kohana-3,kohana-orm,kohana-auth,Authentication,Kohana,Kohana 3,Kohana Orm,Kohana Auth,我制作了一个自定义驱动程序“Auth_MyDriver”,它扩展了Auth 我在这里看到了如何: 这样,当使用此驱动程序时,它从“test\u users”而不是“users”抓取/登录用户 现在,当我使用自定义驱动程序“MyDriver”时,Auth::instance()->get_user()会返回一个带有用户名的字符串 当我使用默认的“orm”身份验证驱动程序并调用auth::instance()->get_user()时,它返回一个完整的对象,其中包含所有从users表获取的用户数据,
test\u users
”而不是“users
”抓取/登录用户
现在,当我使用自定义驱动程序“MyDriver
”时,Auth::instance()->get_user()
会返回一个带有用户名的字符串
当我使用默认的“orm
”身份验证驱动程序并调用auth::instance()->get_user()
时,它返回一个完整的对象,其中包含所有从users表获取的用户数据,因此您可以调用例如auth::instance()->get_user()->email
如何使自定义驱动程序像默认的orm auth驱动程序一样工作,只是它应该只查找test_*表(test_用户、test_角色、test_角色用户)
我花了几个小时试图找出,我想这是关于一个模型用户的东西,我的自定义驱动程序需要这样做吗
希望有任何帮助,谢谢
更新:
MyDriver与Auth文件驱动程序具有相同的方法
public function get_user($default = NULL)
{
return $this->_session->get($this->_config['session_key'], $default);
}
最后:
我只是从数据库中抓取用户,将其变成一个对象,然后使用完整的\u登录发送:
$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);
}
}
这样就可以了:-)最后:
我只是从数据库中抓取用户,将其变成一个对象,然后使用完整的\u登录发送:
$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);
}
}
这样就可以了:-)您是否更改了驱动程序中的get\u user
方法和/或会话的使用?@kingkero检查我的更新,我的自定义驱动程序使用与文件驱动程序相同的get\u user()。您是否更改了驱动程序中的get\u user
方法和/或会话的使用?@kingkero检查我的更新,我的自定义驱动程序使用与文件驱动程序相同的get_user()