You are here

public function FacebookAuthController::userLoginCallback in Open Social 8.7

Same name and namespace in other branches
  1. 8.9 modules/custom/social_auth_facebook/src/Controller/FacebookAuthController.php \Drupal\social_auth_facebook\Controller\FacebookAuthController::userLoginCallback()
  2. 8 modules/custom/social_auth_facebook/src/Controller/FacebookAuthController.php \Drupal\social_auth_facebook\Controller\FacebookAuthController::userLoginCallback()
  3. 8.2 modules/custom/social_auth_facebook/src/Controller/FacebookAuthController.php \Drupal\social_auth_facebook\Controller\FacebookAuthController::userLoginCallback()
  4. 8.3 modules/custom/social_auth_facebook/src/Controller/FacebookAuthController.php \Drupal\social_auth_facebook\Controller\FacebookAuthController::userLoginCallback()
  5. 8.4 modules/custom/social_auth_facebook/src/Controller/FacebookAuthController.php \Drupal\social_auth_facebook\Controller\FacebookAuthController::userLoginCallback()
  6. 8.5 modules/custom/social_auth_facebook/src/Controller/FacebookAuthController.php \Drupal\social_auth_facebook\Controller\FacebookAuthController::userLoginCallback()
  7. 8.6 modules/custom/social_auth_facebook/src/Controller/FacebookAuthController.php \Drupal\social_auth_facebook\Controller\FacebookAuthController::userLoginCallback()
  8. 8.8 modules/custom/social_auth_facebook/src/Controller/FacebookAuthController.php \Drupal\social_auth_facebook\Controller\FacebookAuthController::userLoginCallback()

Authorizes the user after redirect from Facebook.

Return value

\Symfony\Component\HttpFoundation\RedirectResponse Returns a RedirectResponse.

1 string reference to 'FacebookAuthController::userLoginCallback'
social_auth_facebook.routing.yml in modules/custom/social_auth_facebook/social_auth_facebook.routing.yml
modules/custom/social_auth_facebook/social_auth_facebook.routing.yml

File

modules/custom/social_auth_facebook/src/Controller/FacebookAuthController.php, line 84

Class

FacebookAuthController
Class FacebookAuthController.

Namespace

Drupal\social_auth_facebook\Controller

Code

public function userLoginCallback() {
  $sdk = $this
    ->getSdk('login');
  if ($sdk instanceof RedirectResponse) {
    return $sdk;
  }
  $this->authManager
    ->setSdk($sdk);
  $profile = $this
    ->getProfile('login');
  if ($profile instanceof RedirectResponse) {
    return $profile;
  }

  // Check whether user account exists.
  $account = $this
    ->entityTypeManager()
    ->getStorage('user')
    ->loadByProperties([
    'facebook_id' => $profile
      ->getField('id'),
  ]);
  if (!$account) {
    return $this
      ->redirect('social_auth_facebook.user_login_notice');
  }
  $account = current($account);
  if (!$account
    ->get('status')->value) {
    drupal_set_message($this
      ->t('Your account is blocked. Contact the site administrator.'), 'error');
    return $this
      ->redirect('user.login');
  }

  // Authorize the user and redirect him to the edit account page.
  user_login_finalize($account);
  $url = $this
    ->getUrlGenerator()
    ->getPathFromRoute('entity.user.canonical', [
    'user' => $account
      ->id(),
  ]);
  \Drupal::request()->query
    ->set('destination', $url);
  return new RedirectResponse($url);
}