-
Автор темы
- #1
Пытаюсь подключить, но она не работает.
Так выглядит настройка гугла:
Код файла, отвечающего за редирект:
Помогите исправить и подскажите в чём ошибка? Каких-то нормальных гайдов в инете не нашёл
Так выглядит настройка гугла:
Код файла, отвечающего за редирект:
auth_callback.php:
<?php
// auth_callback.php
// Подключение библиотеки Google API для PHP
require_once 'path/to/google-api-php-client/vendor/autoload.php';
// Подключение к базе данных
R::setup('mysql:host=localhost;dbname=skillzap', 'root', '');
// Конфигурационные данные
$client_id = '**************************************************';
$client_secret = '**************************************************';
$redirect_uri = 'http://localhost/auth_callback.php';
// Создание клиента Google API
$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
// Получение кода авторизации от Google
$code = $_GET['code'];
// Обмен кода авторизации на маркер доступа
$tokenURL = 'https://accounts.google.com/o/oauth2/token';
$data = array(
'code' => $code,
'client_id' => $clientID,
'client_secret' => $clientSecret,
'redirect_uri' => $redirectURI,
'grant_type' => 'authorization_code'
);
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data)
)
);
$context = stream_context_create($options);
$response = file_get_contents($tokenURL, false, $context);
$tokenInfo = json_decode($response, true);
// Проверка подлинности маркера доступа
if (isset($tokenInfo['access_token'])) {
$accessToken = $tokenInfo['access_token'];
// Получение информации о пользователе от Google
$userInfoURL = 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=' . $accessToken;
$userInfo = file_get_contents($userInfoURL);
$user = json_decode($userInfo, true);
// Проверка адреса электронной почты пользователя
$email = $user['email'];
if (strpos($email, '@mpt.ru') !== false) {
// Адрес электронной почты соответствует условию (mpt)
// Сохранение информации о пользователе в базе данных RedBean
$userBean = R::dispense('user');
$userBean->email = $email;
R::store($userBean);
// Редирект на главную страницу или другую страницу вашего веб-сайта
header('Location: http://localhost/Posledniyshtrikh.php');
exit;
} else {
// Адрес электронной почты не соответствует условию (mpt)
echo 'Авторизация доступна только для пользователей с почтовыми адресами mpt.';
}
} else {
// Ошибка получения маркера доступа
echo 'Ошибка при получении маркера доступа от Google.';
}
?>
Помогите исправить и подскажите в чём ошибка? Каких-то нормальных гайдов в инете не нашёл