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

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


Для доступа к API необходимо зарегистрировать свое приложение в сервисе.
Добавить свое приложение можно тут или тут.
  • Регистрация приложения


    При добавлении своего приложения необходимо заполнить все обязательные поля.

    В пункте Платформы приложения необходимо указать Веб-сервисы и заполнить поле Redirect URI.
    Это путь до вашего PHP скрипта, который будет обрабатывать запрос на авторизацию.
    В статье для примера приведен пример с данной ссылкой - https://my-site.ru/yandex_auth_url , ее необходимо заменить на вашу ссылку с кодом скрипта обработчика.


    Далее будет необходимо выбрать данные, доступ к которым вам необходим.


    После отправки данных вы получите данные для доступа
    ClientID - Идентификатор приложения
    Client secret - Секретный ключ, которым будет подписан JWT-token с информацией о пользователе.
    Redirect URL Для веб-сервисов - На этот адрес пользователь будет направлен после авторизации.


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


    Данный скрипт формирует ссылку для авторизации через Yandex сервис.
    Для формирования ссылки необходимо указать свои персональные параметры, полученные после регистрации приложения.
    <?php
    
    $params = [
    	'client_id'  => ''ClientID', // Client ID идентификатор приложения, который вы получили на прошлом шаге
    	'redirect_uri'  => 'https://my-site.ru/yandex_auth_url', // Redirect URL Для веб-сервисов, который вы указали при регистрации приложения
    	'response_type' => 'code', // Если передаем code, то производит процедуру аутентификации
    	'state' => 'test'  // Данные, которые вы можете передать, чтобы потом получить в скрипте обработчика (Не является обязательным параметром).
    ];
     
    $url = 'https://oauth.yandex.ru/authorize?' . urldecode(http_build_query($params));
    echo '<a href="' . $url . '">Яндекс авторизация</a>';

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


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

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


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


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