Kohana 3.3 Auth模块因记住标志和创建用户令牌而失败

时间:2013-03-21 15:17:32

标签: php kohana kohana-3 kohana-auth

我正在尝试使用以下命令登录用户:

$login = Auth::instance()->login($this->request->post('username'), $this->request->post('password'), TRUE);

然而,在尝试设置自动登录Cookie时失败,当它到达时为ErrorException [ Notice ]: Trying to get property of non-object

// Token data
$data = array(
    'user_id'    => $user->pk(),
    'expires'    => time() + $this->_config['lifetime'],
    'user_agent' => sha1(Request::$user_agent),
);

// Create a new autologin token
$token = ORM::factory('User_Token')
            ->values($data)
            ->create();

// var_dump($token); // null

// Set the autologin cookie
Cookie::set('authautologin', $token->token, $this->_config['lifetime']);

如果我var_dump($token),则表明它是null。我检查了数据库,似乎是正确添加的。我的配置有driver => 'ORM'。如果remember me标志设置为FALSE,则登录有效。为什么$ token不是对象?有没有我错过的东西?

1 个答案:

答案 0 :(得分:0)

我通过覆盖create()中的class ORM_Base extends Kohana_ORM方法导致错误,然后调用parent::create(),但将user_token指向错误的create()。通过删除我添加的create()来修复。