Android Google Войти в систему подтвердить идентификатор токена - PullRequest
0 голосов
/ 30 августа 2018

Итак, я реализовал Google Sign-in в своем приложении для Android, и теперь я хочу аутентифицировать вошедшего в систему пользователя на моем php-сервере. Я следовал этому руководству: https://developers.google.com/identity/sign-in/android/backend-auth. Я сделал все на странице, а затем добавил идентификатор клиента. (Идентификатор клиента из Google API Console с именем веб-клиента (создается автоматически для входа в Google)). Но когда я пытаюсь проверить свой бэкэнд, я получаю следующую ошибку:

Uncaught GuzzleHttp\Exception\ConnectException:
cURL error 7: Failed to connect to www.googleapis.com port 443:
Connection refused (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
in /srv/disk1/***********/google-api-
client/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:185

Что я делаю не так?

Вот мой php код:

<?php
include('database.php');
require_once 'google-api-client/vendor/autoload.php';

/////////////////////////////////

$request_type = $_SERVER['REQUEST_METHOD'];
$CLIENT_ID = "***";

if ($request_type === 'POST') {
    $entityBody = file_get_contents('php://input');
    $temp = json_decode($entityBody);
    $data = json_decode(json_encode($temp), true);
    if ($data['id_token']) {
        $client = new Google_Client(['client_id' => $CLIENT_ID]);
        $access_token = $client->getAccessToken();
        $payload = $client->verifyIdToken($data['id_token']);
        if ($payload) {
            header('Content-Type: application/json');
            $query = query($connection, 
                'SELECT * FROM `*****`', 
                []);
            print(json_encode($query));  
        } else {
            http_response_code(401);
            print("Unauthorized request.");
        }
    }
    else {
        http_response_code(401);
        print("No id token received.");
    } 
}
else {
    http_response_code(405);
    print("Method not allowed.");
}
?>
...