Skip to content
Snippets Groups Projects
Commit c10ea144 authored by Cristiano Urban's avatar Cristiano Urban
Browse files

Removed support to Facebook.

parent ccdef34b
No related branches found
No related tags found
No related merge requests found
<?php
/*
* This file is part of rap
* Copyright (C) 2021 Istituto Nazionale di Astrofisica
* SPDX-License-Identifier: GPL-3.0-or-later
*/
namespace RAP;
class FacebookLogin extends LoginHandler {
public function __construct(Locator $locator) {
parent::__construct($locator);
}
public function login(): string {
// Retrieve Facebook configuration
$Facebook = $this->locator->config->authenticationMethods->Facebook;
$fb = new \Facebook\Facebook([
'app_id' => $Facebook->id,
'app_secret' => $Facebook->secret,
'default_graph_version' => $Facebook->version,
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = ['email']; // Optional permissions: we need user email
$loginUrl = $helper->getLoginUrl($this->locator->getBasePath() . $Facebook->callback, $permissions);
return $loginUrl;
}
public function retrieveToken(): string {
// Retrieve Facebook configuration
$Facebook = $this->locator->config->authenticationMethods->Facebook;
$fb = new \Facebook\Facebook([
'app_id' => $Facebook->id,
'app_secret' => $Facebook->secret,
'default_graph_version' => $Facebook->version,
]);
$helper = $fb->getRedirectLoginHelper();
if (isset($_GET['state'])) {
$helper->getPersistentDataHandler()->set('state', $_GET['state']);
}
// 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 {
throw new BadRequestException("Unable to obtain access token");
}
}
// Returns a `Facebook\FacebookResponse` object
$response = $fb->get('/me?fields=id,first_name,last_name,email', $accessToken);
$_SESSION['fb_access_token'] = (string) $accessToken;
$fbUser = $response->getGraphUser();
$identity = new Identity(Identity::FACEBOOK);
$identity->typedId = $fbUser["id"];
$identity->email = $fbUser["email"];
$identity->name = $fbUser["first_name"];
$identity->surname = $fbUser["last_name"];
return $this->onIdentityDataReceived($identity);
}
}
img/facebook-200.png

62.8 KiB

img/facebook-60.png

14.3 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment