Как аутентифицировать логин гугл на бэкэнде

Я пытаюсь подтвердить, что был выполнен правильный вход в Google, с этой информацией я хочу получить определенную информацию из Id_token и создать запрос MySQL, чтобы они были проверены на моем собственном сервере (чтобы я мог установить их разрешения и т. Д.)
Когда я делаю это на моем локальном сервере (xampp) с этим кодом, он отлично работает:

введите описание изображения здесь

Но когда я загружаю этот же скрипт на свой собственный сервер, он возвращает ошибку Internal 500 Server, когда достигает $ticket = $client->verifyIdToken($id_token);

Я понятия не имею, почему это происходит, и мой живой сервер, и localhost находятся в разрешенных источниках javascript на моем google dev:

введите описание изображения здесь

Вот полный сценарий:

<?php
/**
* Created by PhpStorm.
* User: kenji
* Date: 1/11/2017
* Time: 10:51 AM
*/
header("Access-Control-Allow-Origin:*");
require_once './vendor/autoload.php';
//define('DBSERVER','localhost');
define('DBSERVER','matypatty.zapto.org');
define('DBUSERNAME','***');
define('DBPASSWORD','***');
define('DBNAME','***');
$conn = new mysqli(DBSERVER, DBUSERNAME, DBPASSWORD, DBNAME);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$CLIENT_ID = "***.apps.googleusercontent.com";
$client = new Google_Client(['client_id' => $CLIENT_ID]);
$client->setApplicationName("Backend_Auth");
if(isset($_POST['id_token']) && !(empty($_POST['id_token']))) {
$id_token = $_POST['id_token'];
$ticket = $client->verifyIdToken($id_token);
if ($ticket) {
$data = $ticket;
print_r($data);

/*$query = mysqli_query($conn, "SELECT * FROM oauth_users WHERE id='".$payload['sub']."'");
if (!$query) { die('Error: ' . mysqli_error($conn)); }
if(!(mysqli_num_rows($query) > 0)){
$sql = "INSERT INTO oauth_users (id, email, name, source, picture) VALUES ('" . $payload['sub'] . "', '" . $payload['email'] . "','" . $payload['name'] . "', '" . $payload['iss'] . "', '" . $payload['picture'] . "')";
if ($conn->query($sql) === TRUE) {
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}*/
}else{
die("Not a valid id_token");
}
}else{
die("set id_token to post");
}

Я печатаю свежий id_token для тестирования с моей функцией входа в систему на моем сайте, поэтому данные публикации являются реальными, как показано в примере с localhost

0

Решение

Это потому, что это устаревшая версия PHP):
Вам понадобится новый хост или используйте проверку токена Google, которая будет медленнее

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector