1

我制作了一个扩展 Auth 的自定义驱动程序“Auth_MyDriver”

我在这里查看如何: 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,和 Auth File 驱动的方法一样

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

1 回答 1

1

最后:

我只是从数据库中抓取用户,变成一个对象并使用 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);
    }
}

这会做到的:-)

于 2013-08-26T21:26:14.383 回答