hapxu3 / esia-laravel
ESIA connector for Laravel framework
Requires
- php: ^7.2
- ext-json: *
- fr05t1k/esia: ^2.0
- guzzlehttp/guzzle: ^6.0
- illuminate/support: ^5.8 || ^6.0 || ^7.0 || ^8.0
- laravel/socialite: ^5.0
This package is auto-updated.
Last update: 2025-03-29 00:49:46 UTC
README
Пакет находится в разработке, версия альфа. Доступно получение имени и идентификатора (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. Пользуйся на здоровье :)