Commit c10ea144 authored by Cristiano Urban's avatar Cristiano Urban
Browse files

Removed support to Facebook.

parent ccdef34b
Loading
Loading
Loading
Loading

classes/login/FacebookLogin.php

deleted100644 → 0
+0 −83
Original line number Diff line number Diff line
<?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

deleted100644 → 0
−62.8 KiB
Loading image diff...

img/facebook-60.png

deleted100755 → 0
−14.3 KiB
Loading image diff...