hapxu3/esia-laravel

ESIA connector for Laravel framework

v1.0.0-alpha 2020-10-26 02:13 UTC

This package is auto-updated.

Last update: 2024-04-29 04:27:42 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. Пользуйся на здоровье :)