В этой статье я собираюсь объяснить, как интегрировать логин Google в ваш сайт PHP. Мы будем использовать Google OAuth API, который является простым и мощным способом добавить логин Google на ваш сайт.
Как веб-пользователь, вы, вероятно, испытывали трудности с управлением различными учетными записями для разных сайтов, в частности, когда у вас есть несколько паролей для разных служб, и веб-сайт просит вас создать еще одну учетную запись на их сайте.
Чтобы справиться с этим, вы можете предложить функцию единого входа, позволяющую посетителям использовать свои существующие учетные данные для открытия учетной записи на вашем сайте. В настоящее время многие веб-сайты позволяют пользователям входить в систему, используя свои существующие учетные записи в Google, Facebook или другом популярном сервисе. Это удобный способ для новых пользователей зарегистрироваться на стороннем сайте вместо регистрации новой учетной записи с еще одним именем пользователя и паролем.
В этом посте мы будем использовать API входа Google OAuth, который позволяет пользователям входить в систему с использованием существующих учетных записей Google. Конечно, пользователи по-прежнему должны иметь возможность зарегистрироваться с помощью обычной формы регистрации на вашем сайте, но предоставление входа в Google или что-то подобное может помочь сохранить нормальный коэффициент удержания пользователей.
- PHP15 полезных форм входа в PHP на CodeCanyon
- PHP20 лучших форм электронной почты PHP
- PHPСоздать контактную форму в PHP
- PHPСравнение 5 лучших PHP Form Builders
Как работает Google Login
Во-первых, давайте разберемся, как работает логин Google на вашем сайте.
На странице входа в систему вашего сайта пользователи могут выбрать один из двух вариантов входа в систему. Первый — указать имя пользователя и пароль, если у них уже есть учетная запись на вашем сайте. А другой заключается в том, чтобы войти на свой сайт с их существующей учетной записью Google.
Когда они нажимают кнопку « Войти через Google» , она запускает поток входа в Google и переводит пользователей на сайт Google для входа. Оказавшись там, они входят в систему со своими учетными данными Google, и после этого они будут перенаправлены на страницу согласия.
На странице согласия у пользователей будет запрошено разрешение на передачу информации о своей учетной записи Google на сторонний сайт. В этом случае сторонний сайт — это сайт, на котором они хотят использовать свою учетную запись Google для входа в систему. Они будут представлены с двумя вариантами: они могут разрешить или запретить.
После того, как они разрешат поделиться своей информацией со сторонним сайтом, они будут перенаправлены на сторонний сайт, откуда они инициировали поток входа в Google.
На этом этапе пользователь вошел в систему с помощью Google, а сторонний сайт имеет доступ к информации профиля пользователя, которую можно использовать для создания учетной записи и входа в систему.
Так что это основной процесс интеграции входа в систему Google на вашем сайте. В оставшейся части поста мы реализуем этот поток входа в рабочий пример на PHP.
Настройка проекта для входа в Google
В этом разделе мы рассмотрим основные настройки, необходимые для интеграции входа в Google с вашим веб-сайтом PHP.
Создать проект Google API
Во-первых, вам нужно создать приложение в Google, которое позволит вам зарегистрировать свой сайт в Google. Это позволяет вам настроить основную информацию о вашем сайте, а также пару технических деталей.
После того, как вы вошли в систему с помощью Google, откройте консоль разработчиков Google . Это должно открыть страницу панели инструментов Google, как показано на следующем снимке экрана.

В верхнем левом меню нажмите на ссылку « Выбрать проект» . Это должно открыть всплывающее окно, как показано на следующем скриншоте.

Нажмите на ссылку « Новый проект», и он попросит вас ввести имя проекта и другие детали. Заполните необходимые данные, как показано в следующем примере.

Нажмите на кнопку Создать , чтобы сохранить ваш новый проект. Вы будете перенаправлены на страницу панели инструментов . Нажмите на Учетные данные на левой боковой панели и перейдите на вкладку экрана согласия OAuth .

На этой странице вам необходимо ввести информацию о вашем приложении, такую как название приложения, логотип и некоторые другие детали. Заполните необходимые данные и сохраните их. Для целей тестирования достаточно просто ввести имя приложения.
Затем нажмите « Учетные данные» на левой боковой панели. Это должно показать вам поле « Учетные данные API» на вкладке « Учетные данные », как показано на следующем снимке экрана.

Нажмите « Учетные данные клиента»> «Идентификатор клиента OAuth», чтобы создать новый набор учетных данных для нашего приложения. Это должно представить вам экран, который просит вас выбрать подходящий вариант. В нашем случае выберите опцию веб-приложения и нажмите кнопку « Создать» . Вам будет предложено предоставить несколько более подробной информации о вашем заявлении.

Введите детали, показанные на скриншоте выше, и сохраните их! Конечно, вам нужно установить URI перенаправления в соответствии с настройками вашего приложения. Это URL, по которому пользователь будет перенаправлен после входа в систему.
На данный момент мы создали клиентское приложение Google OAuth2, и теперь мы должны иметь возможность использовать это приложение для интеграции входа в систему Google на нашем сайте. Пожалуйста, запишите идентификатор клиента и секрет клиента ценности это потребуется при настройке приложения с нашей стороны. Вы всегда можете найти идентификатор клиента и секрет клиента при редактировании приложения.
Установите клиентскую библиотеку Google PHP SDK
В этом разделе мы увидим, как установить клиентскую библиотеку Google PHP API. Есть два варианта, которые вы можете выбрать для его установки:
- Используйте Composer.
- Загрузите и установите файлы библиотеки вручную.
Композитор Путь
Если вы предпочитаете установить его с помощью Composer, вам просто нужно выполнить следующую команду.
|
1
|
$composer require google/apiclient:»^2.0″
|
Вот и все!
Скачать релиз
Если вы не хотите использовать Composer, вы также можете загрузить последнюю стабильную версию с официальной страницы API .
В моем примере я просто использовал Composer.
Если вы следите за этим, к настоящему времени вы должны были настроить приложение Google и установить клиентскую библиотеку API Google PHP. В следующем и последнем разделе мы увидим, как использовать эту библиотеку на вашем сайте PHP.
Интеграция клиентской библиотеки
Напомним, что при настройке приложения Google нам пришлось предоставить URI перенаправления в конфигурации приложения, и мы установили его для перенаправления по адресу http: //localhost/redirect.php . Теперь пришло время создать файл redirect.php .
Продолжайте и создайте redirect.php со следующим содержанием.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<?php
require_once ‘vendor/autoload.php’;
// init configuration
$clientID = ‘<YOUR_CLIENT_ID>’;
$clientSecret = ‘<YOUR_CLIENT_SECRET>’;
$redirectUri = ‘<REDIRECT_URI>’;
// create Client Request to access Google API
$client = new Google_Client();
$client->setClientId($clientID);
$client->setClientSecret($clientSecret);
$client->setRedirectUri($redirectUri);
$client->addScope(«email»);
$client->addScope(«profile»);
// authenticate code from Google OAuth Flow
if (isset($_GET[‘code’])) {
$token = $client->fetchAccessTokenWithAuthCode($_GET[‘code’]);
$client->setAccessToken($token[‘access_token’]);
// get profile info
$google_oauth = new Google_Service_Oauth2($client);
$google_account_info = $google_oauth->userinfo->get();
$email = $google_account_info->email;
$name = $google_account_info->name;
// now you can use this profile info to create account in your website and make user logged in.
} else {
echo «<a href=’».$client->createAuthUrl().»‘>Google Login</a>»;
}
?>
|
Давайте пройдемся по ключевым частям кода.
Первое, что нам нужно сделать, это включить файл autoload.php . Это часть Composer и гарантирует, что классы, которые мы используем в нашем скрипте, загружаются автоматически.
|
1
|
require_once ‘vendor/autoload.php’;
|
Далее есть раздел конфигурации, который инициализирует конфигурацию приложения путем установки необходимых настроек. Конечно, вам необходимо заменить заполнители на соответствующие значения.
|
1
2
3
4
|
// init configuration
$clientID = ‘<YOUR_CLIENT_ID>’;
$clientSecret = ‘<YOUR_CLIENT_SECRET>’;
$redirectUri = ‘<REDIRECT_URI>’;
|
В следующем разделе создается экземпляр объекта Google_Client , который будет использоваться для выполнения различных действий. Наряду с этим мы также инициализировали настройки нашего приложения.
|
1
2
3
4
5
|
// create Client Request to access Google API
$client = new Google_Client();
$client->setClientId($clientID);
$client->setClientSecret($clientSecret);
$client->setRedirectUri($redirectUri);
|
Затем мы добавили электронную почту и области профиля, поэтому после входа в систему у нас есть доступ к основной информации профиля.
|
1
2
|
$client->addScope(«email»);
$client->addScope(«profile»);
|
Наконец, у нас есть кусок кода, который делает магию потока входа в систему.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
// authenticate code from Google OAuth Flow
if (isset($_GET[‘code’])) {
$token = $client->fetchAccessTokenWithAuthCode($_GET[‘code’]);
$client->setAccessToken($token[‘access_token’]);
// get profile info
$google_oauth = new Google_Service_Oauth2($client);
$google_account_info = $google_oauth->userinfo->get();
$email = $google_account_info->email;
$name = $google_account_info->name;
// now you can use this profile info to create account in your website and make user logged in.
} else {
echo «<a href=’».$client->createAuthUrl().»‘>Google Login</a>»;
}
|
Во-первых, давайте пройдемся по части else , которая будет срабатывать при непосредственном доступе к сценарию. Он отображает ссылку, которая ведет пользователя в Google для входа в систему. Важно отметить, что мы использовали метод Google_Client для создания URL-адреса OAuth.
После нажатия на ссылку для входа в Google пользователи будут перенаправлены на сайт Google для входа. После входа в систему Google перенаправляет пользователей на наш сайт, передавая переменную строки запроса code . И вот тогда код PHP в блоке if будет запущен. Мы будем использовать код для обмена токеном доступа.
Получив токен доступа, мы можем использовать сервис Google_Service_Oauth2 для получения информации о профиле вошедшего в систему пользователя.
Таким образом, вы получите доступ к информации профиля, как только пользователь войдет в учетную запись Google. Вы можете использовать эту информацию для создания учетных записей на своем сайте или сохранить ее в сеансе. По сути, это зависит от вас, как вы используете эту информацию и реагируете на тот факт, что пользователь вошел на ваш сайт.
Полезные скрипты PHP Form
Сегодня мы обсудили, как можно интегрировать логин Google с вашим веб-сайтом PHP. Это позволяет пользователям входить в свои существующие учетные записи Google, если они не хотят создавать еще одну учетную запись для вашего сервиса.
Если вы ищете PHP-скрипты, которые вы можете использовать прямо сейчас, я рекомендую вам посетить следующие посты, в которых обобщены некоторые отличные скрипты, доступные по низкой цене.
- PHP15 полезных форм входа в PHP на CodeCanyon
- PHP20 лучших форм электронной почты PHP
- PHPСоздать контактную форму в PHP
- PHPСравнение 5 лучших PHP Form Builders
Дайте мне знать в комментариях ниже, если у вас есть какие-либо вопросы!



