Skip to content
index.php 2.3 KiB
Newer Older
<?php

/* ----------------------------------------------------------------------------
 *               INAF - National Institute for Astrophysics
 *               IRA  - Radioastronomical Institute - Bologna
 *               OATS - Astronomical Observatory - Trieste
 * ----------------------------------------------------------------------------
 *
 * Copyright (C) 2016 Istituto Nazionale di Astrofisica
 *
 * This program is free software; you can redistribute it and/or modify it under
 * the terms of the GNU General Public License Version 3 as published by the
 * Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, write to the Free Software Foundation, Inc., 51
 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 */

include './include/init.php';

/**
 * REST Web Service using http://flightphp.com/
 */
Flight::route('/', function() {
    $callback = (isset($_SERVER['HTTPS']) ? "https" : "http") . '://' . $_SERVER['HTTP_HOST'] . "/rap-service/user-info";
    Flight::render('demo.php', array('callback' => $callback));
});

Flight::route('POST /google', function() {
    $callback = Flight::request()->data['callback'];
    if (!isset($callback)) {
        throw new Exception("Callback URL not set!");
    }
    session_start();
    $_SESSION['rap_callback'] = $callback;
    Flight::redirect('/oauth2/google_token.php');
});

Flight::route('POST /facebook', function() {
    $callback = Flight::request()->data['callback'];
    if (!isset($callback)) {
        throw new Exception("Callback URL not set!");
    }
    session_start();
    $_SESSION['rap_callback'] = $callback;
    Flight::redirect('/oauth2/facebook_login.php');
});

Flight::route('GET /user-info', function() {

    $token = Flight::request()->query['token'];
    $userData = RAP\DAO::getTokenData($token);

    if (is_null($userData)) {
        http_response_code(404);
        die("Token not found");
    }

    RAP\DAO::deleteToken($token);

    header('Content-Type: application/json');
    echo $userData;
});

Flight::start();