В этой статье вы прочитаете как делается авторизация через Google на языке программирования PHP.
Также, рекомендую прочитать статью Авторизация через ВКонтакте на PHP.
Подключение Google API:
Перед тем как начать создавать авторизацию, нужно получить API, для этого зайдите по этой ссылке, там же нажимаем кнопку «Создать проект».
У вас откроется страница, где вам нужно будет только выбрать название и нажать на кнопку «Создать».
После этого, в боковом меню нажмите на вкладку «Учётные данные», там же нажимаем на кнопку «Создать учётные данные», вам дадут выбор, какие данные нужны, выбрайте «Идентификатор клиента OAuth».
Дальше надо выбрать для каких пользователей сделать авторизацию, обычно выбирают для внешних. Потом идёт настройка, там всё просто.
После этого, опять заходим на вкладку «Учётные данные» и точно также выбираем «Создать учётные данные» и «Идентификатор клиента OAuth», у вас появится список типов приложений, нажимайте на «Веб-приложение».
После этого напишите название клиента и самое главное, впишите URL, куда перенаправлять данные, например, для вывода, нажимаете «Создать», после всех этих действий, у вас должно появится окно с идентификатором клиента и секретным кодом клиента.
На этом получение API закончилось.
Подключение PHP Библиотеки для работы с Google API:
Теперь, для более простой работы с Google API, нужно скачать специальную библиотеку, это можно сделать двумя способами, через Composer или просто через GitHub.
Composer:
Тут надо ввести пару команд.
1 | composer require google/apiclient:"^2.0" |
Ну и подключаем прост в PHP файле.
1 | require_once '/path/to/your-project/vendor/autoload.php'; |
GitHub:
Скачать через GitHub — просто зайдите по этой ссылке и нажмите на zip архив.
После из архива перемещаем файл с вашем проектом и подключаем его в PHP файле.
1 | require_once './libs/google-api-php-client-2.5.0/vendor/autoload.php'; |
На этом подключение библиотеки закончилось.
Создание авторизации через Google:
Теперь перейдём к созданию самой авторизации через Google на PHP, но в начале нужно сделать файл конфигурации для удобства, назовём его «config.php».
1 2 3 | define('CLIENT_ID', 'Идентификатор клиента'); define('CLIENT_ID_SECRET', 'Секретный код клиента'); define('REDIRECT_URL', 'Путь перенаправление'); |
Тут мы просто создаём несколько констант, которые хранят информацию о клиенте, два ключа и путь перенаправления.
Дальше пошёл уже основной код программы.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // Подключаем файл конфигурации require_once './socnet/config.php'; // Объявляем объект класса Google_Client $client = new Google_Client(); // Добавляем Идентификатор клиента $client -> setClientId(CLIENT_ID); // Добавляем Перенаправление $client -> setRedirectUri(REDIRECT_URL); // Данные которые нужны получить $client -> addScope("profile"); // Вывод ссылки с URL get запросом echo "<a href=" . $client -> createAuthUrl() . ">Войти через google</a>" |
Давайте не много разберём этот код, вначале мы подключаем файл конфигурации, потом объявляем объект класса Google_Client
, и добавляем несколько параметром, это идентификатор клиента и путь для перенаправления.
Последнее что нужно добавить, это то, какие данные мы хотим получить, в нашем случае только данные профиля, это идёт вывод ссылки, в качестве атрибута href
используется метод createAuthUrl()
, который генерирует URL с GET запросом.
Следующий файл который нам нужно создать, это тот, куда мы перенаправляем данные, вот его код.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | require_once './config.php'; // Объявляем объект класса Google_Client $client = new Google_Client(); // Добавляем Идентификатор клиента $client->setClientId(CLIENT_ID); // Добавляем секретный код $client->setClientSecret(CLIENT_ID_SECRET); // Добавляем перенаправление $client->setRedirectUri(REDIRECT_URL); // Добавляем какие данные нужно получить $client->addScope("profile"); // Если есть code в качестве get запроса if (isset($_GET['code'])) { $token = $client->fetchAccessTokenWithAuthCode($_GET['code']); $client->setAccessToken($token['access_token']); $google_oauth = new Google_Service_Oauth2($client); $google_account_info = $google_oauth->userinfo->get(); $name = $google_account_info->name; // Вывод имя пользователя echo $name; } |
Теперь всё также, как и в прошлый раз, единственное что мы ещё добавляем секретный ключ, также идёт проверка, что есть значение code в качестве GET запроса, если да, то получаем данные пользователя, выводим просто имя.
Вывод:
В этой статье вы прочитали как делается авторизация через google на языке программирования PHP.