php. Авторизация на сайте с помощью Google

Данный материал предоставлен сайтом PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Сервис Google предоставляет возможность реализации авторизации пользователя на сайте с помощью своего API.
При прохождении авторизации в данном сервисе вы можете получить доступ к персональному идентификатору пользователя в сервисе, имени, фамилии, email, изображению и еще нескольким данным профиля.



  • Регистрация приложения:


    Зарегистрировать аккаунт в серсисе можно тут.
    Создаем новый проект:

    Введите название своего проекта. И введите название организации (Не обязательно). После чего нажмите кнопку "Создать" (Create).

    После того, как вы создадите проект, откройте меню в верхней левой части сайта и выберите в меню пункт "APIs & Services":

    Далее в выпадающем меню выбираем "OAuth consent screen".

    Выбираем "Расширенный режим" (External) и нажимаем кнопку "Создать" (Create).

    Заполняем все обязательные поля:
    Такие как Название вашего приложения, контактного email, доменное имя вашего проекта.

    Вместо "https://pacificsky.ru" необходимо указать доменное имя вашего проекта и авторизованный домен (Ваш домен, через который будет проходить авторизация). Нажимаем "Сохранить и продолжить" (Save And Continue)

    После завершения регистрации возвращаемся в "Приборную панель" (Dashboard).
    В боковом меню выберите пункт "Учетные данные" (Credentials). Далее "Создание учетных данных" (Create credentials) -> "OAuth client ID".


    На следующем этапе необходимо указать "Тип приложения" (Application type) -> "Веб приложение" (Web application), указать OAuth имя вашего клиента и нужно указать "авторизованные URI для перенаправления" (Authorized redirect URIs)
    Для примера в статье указан фейковый адрес - "https://my-site.ru/google_auth_url". Данный адрес необходимо заменить на адрес, с вызовом кода вашего кода с обработчиком.
    Далее необходимо нажаьть "Создать" (Create).

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

  • Скрипт создания ссылки для входа:


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

    <?php
    
    $params = [
        'client_id' => 'Client_ID', // Client ID идентификатор приложения, который вы получили на прошлом шаге
        'redirect_uri' => 'https://my-site.ru/google_auth_url', // Redirect URL Для веб-сервисов, который вы указали при регистрации приложения
        'response_type' => 'code', // Если передаем code, то производит процедуру аутентификации
        'scope' => 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile', // Области проверки
        'state' => '123' // Данные, которые вы можете передать, чтобы потом получить в скрипте обработчика (Не является обязательным параметром).
    ];
    
    $url = 'https://accounts.google.com/o/oauth2/auth?' . urldecode(http_build_query($params));
    echo sprintf("<a href=\"%s\">Google авторизация</a>", $url);

  • Скрипт обработчика Redirect URL.


    После того как пользователи перейдут по сформированной ссылке для входа, Google будет обращаться к URL, указанному в redirect_uri параметре - https://my-site.ru/google_auth_url (Redirect URL Для веб-сервисов, который вы указали при регистрации приложения)

    Код обработчика:


    Полученные данные о профиле пользователя, распечатанные в print_r:


Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.