Как добавить логин Google OAuth на веб-сайт с помощью PHP
Если у вас есть веб-сайт, на котором пользователь может зарегистрироваться, вы можете добавить функцию входа в систему через Google OAuth. Вход в систему Google для веб-сайтов упрощает процесс регистрации для пользователей. Ваши пользователи могут использовать свою учетную запись Google для регистрации на вашем веб-сайте. Им не нужно заполнять вашу регистрационную форму, активировать свою учетную запись по электронной почте и т.д.
В этой статье мы изучаем, как добавить на свой сайт функцию входа в Google OAuth.
Получите свои учетные данные
Чтобы начать работу с API входа в Google, вам сначала нужно создать проект в Google и получить свои учетные данные. Ниже приведены шаги, которые необходимо выполнить для создания проекта Google.
- Перейдите в консоль разработчика Google.
- Щелкните раскрывающийся список и создайте новый проект, нажав знак (+). Кроме того, вы также можете выбрать существующий проект.
- Выберите свой проект и нажмите «ВКЛЮЧИТЬ APIS И УСЛУГИ». В поле поиска введите «Google+» и выберите API Google+. Включите это.
- Снова зайдите в панель управления проекта и выберите «Учетные данные» на боковой панели.
- На вкладке «Учетные данные» щелкните раскрывающееся меню «Создать учетные данные» и выберите «Идентификатор клиента OAuth».
- Выберите веб-приложение в списке Тип приложения. В авторизованных URL-адресах перенаправления введите URL-адрес.
YOUR_DOMAIN_URL/index.php
- После сохранения вы получите диалоговое окно с вашим идентификатором клиента и секретом клиента. Скопируйте эти ключи, которые нам понадобятся на следующих шагах.
Вы можете заметить URL-адрес перенаправления, который мы установили в приложении. В этом руководстве мы будем обрабатывать код обратного вызова в index.php
. Пользователи могут использовать для этой цели любой другой файл.
Установка библиотеки HybridAuth
HybridAuth – это PHP-библиотека для входа в социальные сети с открытым исходным кодом. Используя эту библиотеку, мы можем добавить социальный вход для одного или нескольких провайдеров, таких как Google, Facebook, Twitter и т.д.
Давайте установим библиотеку HybridAuth с помощью композитора. Создайте composer.json
файл в корневой папке проекта и добавьте в него приведенный ниже код.
{
"require": {
"hybridauth/hybridauth": "~3.0"
}
}
Затем откройте терминал в корневом каталоге вашего проекта и выполните команду:
composer install
Создайте config.php
файл и добавьте в него приведенный ниже код для настройки входа в Google.
<?php
require_once 'vendor/autoload.php';
$config = [
'callback' => 'YOUR_DOMAIN_URL/index.php',
'keys' => [
'id' => 'YOUR_CLIENT_ID',
'secret' => 'YOUR_CLIENT_SECRET'
],
'scope' => 'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email',
'authorize_url_parameters' => [
'approval_prompt' => 'force', // to pass only when you need to acquire a new refresh token.
'access_type' => 'offline'
]
];
$adapter = new HybridauthProviderGoogle( $config );
Обязательно замените заполнители фактическими значениями. В приведенном выше коде мы передали YOUR_DOMAIN_URL/index.php
значение обратного вызова. Отрегулируйте этот путь в соответствии с вашими требованиями.
Добавить логин Google OAuth
Мы все настроили наши конфигурации и хорошо, что продолжаем. Итак, давайте создадим файлы index.php
и logout.php
в корневом каталоге вашего проекта.
index.php
<?php
require_once 'config.php';
try {
$adapter->authenticate();
$userProfile = $adapter->getUserProfile();
print_r($userProfile);
echo '<a href="logout.php">Logout</a>';
}
catch( Exception $e ){
echo $e->getMessage() ;
}
Теперь, когда вы запускаете index.php
браузер, наш код сначала проверяет, аутентифицирован ли пользователь с помощью «Google» или нет. В противном случае он перенаправляется на страницу входа в Google. Пользователь должен войти в систему со своей учетной записью Google, а затем он снова будет перенаправлен на index.php
. Как только пользователь переходит на страницу входа, мы получаем профиль пользователя с помощью этого метода getUserProfile()
.
В logout.php
файле нам просто нужно отключить адаптер Google.
logout.php
<?php
require_once 'config.php';
try {
if ($adapter->isConnected()) {
$adapter->disconnect();
echo 'Logged out the user';
echo '<p><a href="index.php">Login</a></p>';
}
}
catch( Exception $e ){
echo $e->getMessage() ;
}
Мы надеемся, что вы сможете узнать о входе в систему через Google OAuth на веб-сайте с PHP. Пожалуйста, поделитесь своими мыслями в разделе комментариев ниже.
Статьи по Теме
- Вход в Google в Laravel с помощью Laravel Socialite
- Как интегрировать новостную рассылку MailChimp в приложение Laravel
- Как сделать резервную копию приложения Laravel