From 43d0bcc95ff4326e962f5de64aa2e4a33146ea61 Mon Sep 17 00:00:00 2001 From: Sonia Zorba <sonia.zorba@inaf.it> Date: Fri, 16 Oct 2020 11:33:07 +0200 Subject: [PATCH] Facebook login updates --- classes/login/FacebookLogin.php | 34 +++++++-------------------------- config-example.yaml | 2 +- 2 files changed, 8 insertions(+), 28 deletions(-) diff --git a/classes/login/FacebookLogin.php b/classes/login/FacebookLogin.php index 8e5dc84..3d43507 100644 --- a/classes/login/FacebookLogin.php +++ b/classes/login/FacebookLogin.php @@ -43,43 +43,23 @@ class FacebookLogin extends LoginHandler { $helper->getPersistentDataHandler()->set('state', $_GET['state']); } - try { - // obtaining current URL without query string - $url = "https://$_SERVER[HTTP_HOST]" . strtok($_SERVER["REQUEST_URI"], '?'); - $accessToken = $helper->getAccessToken($url); - } catch (Facebook\Exceptions\FacebookResponseException $e) { - // When Graph returns an error - http_response_code(500); - die('Graph returned an error: ' . $e->getMessage()); - } catch (Facebook\Exceptions\FacebookSDKException $e) { - // When validation fails or other local issues - http_response_code(500); - die('Facebook SDK returned an error: ' . $e->getMessage()); - } + // obtaining current URL without query string + $accessToken = $helper->getAccessToken($this->locator->getBasePath() . $Facebook->callback); + if (!isset($accessToken)) { if ($helper->getError()) { $errorMessage = "Error: " . $helper->getError() . "<br>"; $errorMessage = $errorMessage . "Error Code: " . $helper->getErrorCode() . "<br>"; $errorMessage = $errorMessage . "Error Reason: " . $helper->getErrorReason() . "<br>"; $errorMessage = $errorMessage . "Error Description: " . $helper->getErrorDescription(); + throw new ServerErrorException($errorMessage); } else { - $errorMessage = "Bad request"; + throw new BadRequestException("Unable to obtain access token"); } - - http_response_code(500); - die($errorMessage); } - try { - // Returns a `Facebook\FacebookResponse` object - $response = $fb->get('/me?fields=id,first_name,last_name,email', $accessToken); - } catch (Facebook\Exceptions\FacebookResponseException $e) { - echo 'Graph returned an error: ' . $e->getMessage(); - exit; - } catch (Facebook\Exceptions\FacebookSDKException $e) { - echo 'Facebook SDK returned an error: ' . $e->getMessage(); - exit; - } + // Returns a `Facebook\FacebookResponse` object + $response = $fb->get('/me?fields=id,first_name,last_name,email', $accessToken); $_SESSION['fb_access_token'] = (string) $accessToken; diff --git a/config-example.yaml b/config-example.yaml index cf625bb..87b2554 100644 --- a/config-example.yaml +++ b/config-example.yaml @@ -23,7 +23,7 @@ authenticationMethods: Facebook: id: "XXXXXX" secret: "XXXXXX" - version: "v3.0" + version: "v8.0" callback: "/auth/social/facebook/token" LinkedIn: id: "XXXXXX" -- GitLab