CakePHP - Auth保存用户的上次登录时间

时间:2011-07-28 11:54:05

标签: cakephp login authentication

插入代码以保存用户上次登录的最佳位置在哪里?我几乎在手册中的标准实现中使用CakePHP Auth登录系统。

在哪里可以插入代码,以便在登录后Auth重定向之前保存到用户记录?

1 个答案:

答案 0 :(得分:10)

如果您希望执行AuthComponent::autoRedirect方法中的代码,则需要停用UsersController::login()

public $components = array(
    'Auth' => array(
        // ...
        'autoRedirect' => false,
    ),
);

然后,您可以在登录操作中执行此操作,但仍需要手动执行重定向:

public function login() {
    if ($this->Auth->user()) { // check user is logged in
        $this->User->id = $this->Auth->user('id'); // target correct record
        $this->User->saveField('last_login', date(DATE_ATOM)); // save login time
        $this->redirect($this->Auth->redirect()); // redirect to default place
    }
}