基本上,这归结为可以在CakePHP中使用Model Callback在您登录和注销时挂钩。
我想要做的目标是每次用户登录或退出应用程序时都会记录。
我设置了一个自定义日志流,以便为数据库保存适当的值。
在我的UsersController.php中,我有这个:
public function login() {
// Check if we have post data
if( $this->request->is('post') ) {
// Reset any user data hanging around
$this->User->create();
// Log our user in
if( $this->Auth->login() ) {
// Success, redirect with a message
$this->Session->setFlash( 'You have successfully logged in' );
$this->redirect( $this->Auth->loginRedirect );
} else {
// Failure, flash a message
$this->Session->setFlash( 'Incorrect Username/Password' );
}
}
}
我能看到的很标准。
然后我在模型中寻找一些东西来挂钩登录和注销操作,用这个来写入数据库。
CakeLog::write( 'Notice', "$username has logged in." );
我知道我可以用另一种方式做到这一点,但我特别要求通过模型回调来做到这一点。
答案 0 :(得分:0)
关于$this->Auth->loginRedirect
,有一种方法:
$this->Auth->redirectUrl()
除此之外,您可以简单地创建模型方法并在登录中调用它们:
if ($this->Auth->login()) {
$this->User->loggedInCallback($username);
}
您可以根据需要添加尽可能多的逻辑并登录该方法。
不需要让它变得更难。