Merge pull request #10424 from cakephp/issue-10422

Unset the active user data on logout.
This commit is contained in:
Mark Story 2017-03-17 22:44:28 -04:00 committed by GitHub
commit c0f11dd206
2 changed files with 18 additions and 0 deletions

View file

@ -645,6 +645,7 @@ class AuthComponent extends Component {
foreach ($this->_authenticateObjects as $auth) {
$auth->logout($user);
}
static::$_user = array();
$this->Session->delete(static::$sessionKey);
$this->Session->delete('Auth.redirect');
$this->Session->renew();

View file

@ -1428,6 +1428,23 @@ class AuthComponentTest extends CakeTestCase {
$this->assertNull($this->Auth->Session->read('Auth.redirect'));
}
/**
* test that logout removes the active user data as well for stateless auth
*
* @return void
*/
public function testLogoutRemoveUser() {
$oldKey = AuthComponent::$sessionKey;
AuthComponent::$sessionKey = false;
$this->Auth->login(array('id' => 1, 'username' => 'mariano'));
$this->assertSame('mariano', $this->Auth->user('username'));
$this->Auth->logout();
AuthComponent::$sessionKey = $oldKey;
$this->assertNull($this->Auth->user('username'));
}
/**
* Logout should trigger a logout method on authentication objects.
*