Пакет находится в разработке, версия альфа. Доступно получение имени и идентификатора (oid) пользователя в системе.
Используется Laravel Socialite.
С использованием Composer:
composer require hapxu3/esia-laravel
После установки опубликовать файл конфигурации, который будет доступен как config/esia.php
:
php artisan vendor:publish --tag=esia
В этом файле можно установить переменные:
redirectUrl
- url, куда будет отправлен пользователь после разрешения на сайте ЕСИА
scope
- набор разрешений, по умолчанию установлено ['fullname', 'birthdate']
signer
- доступны два варианта подписи через OpenSsl: 1) Через функции расширения в php 2) Через cli. По умолчанию используется второй. Класс первого - Esia\Signer\SignerPKCS7
tmpPath
- путь для создания временного файла с подписанным содержимым
В файле .env
добавить значения для следующих переменных:
ESIA_TEST
- режим работы (тестовый/боевой = true/false)
ESIA_CLIENT_ID
- clientId или мнемоника в терминах ЕСИА
ESIA_CERT_PATH
- путь к файлу сертификата
ESIA_PRIVATE_KEY_PATH
- путь к файлу приватного ключа
ESIA_PRIVATE_KEY_PASSWORD
- парольная фраза для файла приватного ключа
Ниже приведён вариант использования stateless, то есть хранение токена определяется приложением.
Получение объекта драйвера:
$driver = Socialite::driver('esia')
Создание ссылки для перенаправления пользователя:
$redirectUrl = Socialite::driver('esia')->stateless()->buildUrl()
Получение объекта пользователя OAuth:
$user = Socialite::driver('esia')->stateless()->user()
Исходные полученные данные хранятся в $user->user
Поскольку это адаптер библиотеки fr05t1k/esia для Laravel, выражаю благодарность fr05t1k и участникам разработки за открытый код и лицензию.
MIT. Пользуйся на здоровье :)