php. Авторизация на сайте с помощью yandex
Данный материал предоставлен сайтом
PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
API сервис Yandex ID позволяет реализовать авторизацию пользователя на сайте. После подтверждения и разрешения доступа к аккаунту, можно получить доступ к таким данным как: имя, фамилия, логин, фото профиля и email.
Для доступа к API необходимо зарегистрировать свое приложение в сервисе.
Добавить свое приложение можно тут или тут.
На основании данных, полученных от Yandex, можно проапдейтить данные пользователя. И создать сессию с авторизованным пользователем.
Для доступа к 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, можно проапдейтить данные пользователя. И создать сессию с авторизованным пользователем.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.