Статьи

Создайте страницу входа в Google на PHP

В этой статье я собираюсь объяснить, как интегрировать логин Google в ваш сайт PHP. Мы будем использовать Google OAuth API, который является простым и мощным способом добавить логин Google на ваш сайт.

Как веб-пользователь, вы, вероятно, испытывали трудности с управлением различными учетными записями для разных сайтов, в частности, когда у вас есть несколько паролей для разных служб, и веб-сайт просит вас создать еще одну учетную запись на их сайте.

Чтобы справиться с этим, вы можете предложить функцию единого входа, позволяющую посетителям использовать свои существующие учетные данные для открытия учетной записи на вашем сайте. В настоящее время многие веб-сайты позволяют пользователям входить в систему, используя свои существующие учетные записи в Google, Facebook или другом популярном сервисе. Это удобный способ для новых пользователей зарегистрироваться на стороннем сайте вместо регистрации новой учетной записи с еще одним именем пользователя и паролем.

В этом посте мы будем использовать API входа Google OAuth, который позволяет пользователям входить в систему с использованием существующих учетных записей Google. Конечно, пользователи по-прежнему должны иметь возможность зарегистрироваться с помощью обычной формы регистрации на вашем сайте, но предоставление входа в Google или что-то подобное может помочь сохранить нормальный коэффициент удержания пользователей.

  • PHP
    15 полезных форм входа в PHP на CodeCanyon
    Эрик Дай
  • PHP
    20 лучших форм электронной почты PHP
    Монти Шокин
  • PHP
    Создать контактную форму в PHP
    Монти Шокин
  • PHP
    Сравнение 5 лучших PHP Form Builders
    Нона Блэкман

Во-первых, давайте разберемся, как работает логин Google на вашем сайте.

На странице входа в систему вашего сайта пользователи могут выбрать один из двух вариантов входа в систему. Первый — указать имя пользователя и пароль, если у них уже есть учетная запись на вашем сайте. А другой заключается в том, чтобы войти на свой сайт с их существующей учетной записью Google.

Когда они нажимают кнопку « Войти через Google» , она запускает поток входа в Google и переводит пользователей на сайт Google для входа. Оказавшись там, они входят в систему со своими учетными данными Google, и после этого они будут перенаправлены на страницу согласия.

На странице согласия у пользователей будет запрошено разрешение на передачу информации о своей учетной записи Google на сторонний сайт. В этом случае сторонний сайт — это сайт, на котором они хотят использовать свою учетную запись Google для входа в систему. Они будут представлены с двумя вариантами: они могут разрешить или запретить.

После того, как они разрешат поделиться своей информацией со сторонним сайтом, они будут перенаправлены на сторонний сайт, откуда они инициировали поток входа в Google.

На этом этапе пользователь вошел в систему с помощью Google, а сторонний сайт имеет доступ к информации профиля пользователя, которую можно использовать для создания учетной записи и входа в систему.

Так что это основной процесс интеграции входа в систему Google на вашем сайте. В оставшейся части поста мы реализуем этот поток входа в рабочий пример на PHP.

В этом разделе мы рассмотрим основные настройки, необходимые для интеграции входа в Google с вашим веб-сайтом PHP.

Во-первых, вам нужно создать приложение в Google, которое позволит вам зарегистрировать свой сайт в Google. Это позволяет вам настроить основную информацию о вашем сайте, а также пару технических деталей.

После того, как вы вошли в систему с помощью Google, откройте консоль разработчиков Google . Это должно открыть страницу панели инструментов Google, как показано на следующем снимке экрана.

Google Dashboard

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

Выберите всплывающее окно проекта

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

Страница нового проекта в Google Dashboard

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

OAuth Consent Screen

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

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

Выбор учетных данных API в Google Dashboar

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

Создать идентификатор клиента OAuth

Введите детали, показанные на скриншоте выше, и сохраните их! Конечно, вам нужно установить URI перенаправления в соответствии с настройками вашего приложения. Это URL, по которому пользователь будет перенаправлен после входа в систему.

На данный момент мы создали клиентское приложение Google OAuth2, и теперь мы должны иметь возможность использовать это приложение для интеграции входа в систему Google на нашем сайте. Пожалуйста, запишите идентификатор клиента и секрет клиента ценности это потребуется при настройке приложения с нашей стороны. Вы всегда можете найти идентификатор клиента и секрет клиента при редактировании приложения.

В этом разделе мы увидим, как установить клиентскую библиотеку Google PHP API. Есть два варианта, которые вы можете выбрать для его установки:

  1. Используйте Composer.
  2. Загрузите и установите файлы библиотеки вручную.

Если вы предпочитаете установить его с помощью 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. Вы можете использовать эту информацию для создания учетных записей на своем сайте или сохранить ее в сеансе. По сути, это зависит от вас, как вы используете эту информацию и реагируете на тот факт, что пользователь вошел на ваш сайт.

Сегодня мы обсудили, как можно интегрировать логин Google с вашим веб-сайтом PHP. Это позволяет пользователям входить в свои существующие учетные записи Google, если они не хотят создавать еще одну учетную запись для вашего сервиса.

Если вы ищете PHP-скрипты, которые вы можете использовать прямо сейчас, я рекомендую вам посетить следующие посты, в которых обобщены некоторые отличные скрипты, доступные по низкой цене.

  • PHP
    15 полезных форм входа в PHP на CodeCanyon
    Эрик Дай
  • PHP
    20 лучших форм электронной почты PHP
    Монти Шокин
  • PHP
    Создать контактную форму в PHP
    Монти Шокин
  • PHP
    Сравнение 5 лучших PHP Form Builders
    Нона Блэкман

Дайте мне знать в комментариях ниже, если у вас есть какие-либо вопросы!