CakePHP - авторизация для сохранения времени последнего входа пользователя - PullRequest
2 голосов
/ 28 июля 2011

Где лучше всего вставить код, чтобы сохранить последний логин пользователя?Я использую систему авторизации CakePHP Auth в почти стандартной реализации, описанной в руководстве.

Где я могу вставить код, чтобы он сохранялся в записи пользователя непосредственно перед перенаправлением аутентификации после входа в систему?

1 Ответ

10 голосов
/ 28 июля 2011

Вам необходимо отключить 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
    }
}
...