2
哪里是插入代码以保存用户上次登录的最佳位置?我几乎在手册的标准实现中使用了CakePHP Auth登录系统。CakePHP - 验证以保存用户上次登录时间
我在哪里可以插入代码,以便在登录后Auth重定向之前将其保存到用户记录中?
哪里是插入代码以保存用户上次登录的最佳位置?我几乎在手册的标准实现中使用了CakePHP Auth登录系统。CakePHP - 验证以保存用户上次登录时间
我在哪里可以插入代码,以便在登录后Auth重定向之前将其保存到用户记录中?
你需要禁用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
}
}
据我所知,登录本身仍然由组件执行。在我的网站的'UsersController :: login()'方法中,在设置'last_login'值之前,我检查尝试的登录和非空'$ this-> Auth-> user()'。我唯一一次显式调用'$ this-> Auth-> login()'是在成功注册之后并且在动态更新授权用户数据之后。 –
啊,你是正确的,我已经更新了我的答案。 – deizel