On this page
function user_login_finalize
user_login_finalize(UserInterface $account)
Finalizes the login process and logs in a user.
The function logs in the user, records a watchdog message about the new session, saves the login timestamp, calls hook_user_login(), and generates a new session.
The current user is replaced with the passed in account.
Parameters
\Drupal\user\UserInterface $account: The account to log in.
See also
File
- core/modules/user/user.module, line 528
- Enables the user registration and login system.
Code
function user_login_finalize(UserInterface $account) {
\Drupal::currentUser()->setAccount($account);
\Drupal::logger('user')->notice('Session opened for %name.', array('%name' => $account->getUsername()));
// Update the user table timestamp noting user has logged in.
// This is also used to invalidate one-time login links.
$account->setLastLoginTime(REQUEST_TIME);
\Drupal::entityManager()
->getStorage('user')
->updateLastLoginTimestamp($account);
// Regenerate the session ID to prevent against session fixation attacks.
// This is called before hook_user_login() in case one of those functions
// fails or incorrectly does a redirect which would leave the old session
// in place.
\Drupal::service('session')->migrate();
\Drupal::service('session')->set('uid', $account->id());
\Drupal::moduleHandler()->invokeAll('user_login', array($account));
}
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!modules!user!user.module/function/user_login_finalize/8.1.x