我正在尝试在注册后立即使用CakePHP 3登录用户,但我没有成功。这就是我在做的事情:
function register(){
// ....
if($result = $this->Users->save($user)){
// Retrieves corresponding user that was just saved
$authUser = $this->Users->get($result->id);
// Log user in using Auth
$this->Auth->setUser($authUser);
// Redirect user
$this->redirect('/users/account');
}
}
答案 0 :(得分:8)
我想发布这个问题让我眼前一亮。这就是我为了让它发挥作用所做的......如果有更好的方法,我很乐意改变它......
function register(){
// .... Default CakePHP generated code
if($result = $this->Users->save($user)){
// Retrieve user from DB
$authUser = $this->Users->get($result->id)->toArray();
// Log user in using Auth
$this->Auth->setUser($authUser);
// Redirect user
$this->redirect(['action' => 'account']);
}
}
答案 1 :(得分:0)
CakePHP 3.8×cakephp/authentication更新。
在您呼叫
AuthComponent::setUser()
的任何地方,现在都应使用setIdentity()
:// Assume you need to read a user by access token $user = $this->Users->find('byToken', ['token' => $token])->first(); // Persist the user into configured authenticators. $this->Authentication->setIdentity($user);
来源:/authentication/1/en/migration-from-the-authcomponent.html#checking-identities