function user_logout

Same name and namespace in other branches
  1. 7.x modules/user/user.pages.inc \user_logout()
  2. 9 core/modules/user/user.module \user_logout()
  3. 8.9.x core/modules/user/user.module \user_logout()
  4. 11.x core/modules/user/user.module \user_logout()

Logs the current user out.

4 calls to user_logout()
MaintenanceModeSubscriber::onMaintenanceModeRequest in core/modules/user/src/EventSubscriber/MaintenanceModeSubscriber.php
Logout users if site is in maintenance mode and user is not exempt.
UserAuthenticationController::userLogout in core/modules/user/src/Controller/UserAuthenticationController.php
Logs the user out.
UserController::logout in core/modules/user/src/Controller/UserController.php
Logs the current user out.
UserController::resetPass in core/modules/user/src/Controller/UserController.php
Redirects to the user password reset form.

File

core/modules/user/user.module, line 1232

Code

function user_logout() {
    $user = \Drupal::currentUser();
    \Drupal::logger('user')->info('Session closed for %name.', [
        '%name' => $user->getAccountName(),
    ]);
    \Drupal::moduleHandler()->invokeAll('user_logout', [
        $user,
    ]);
    // Destroy the current session, and reset $user to the anonymous user.
    // Note: In Symfony the session is intended to be destroyed with
    // Session::invalidate(). Regrettably this method is currently broken and may
    // lead to the creation of spurious session records in the database.
    // @see https://github.com/symfony/symfony/issues/12375
    \Drupal::service('session_manager')->destroy();
    $user->setAccount(new AnonymousUserSession());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.