ilimurzin/esia
Composer 安装命令:
composer require ilimurzin/esia
包简介
Пакет для входа через Госуслуги
README 文档
README
Пакет для входа через Госуслуги.
Поддерживается в двух версиях: 3.x и 4.x. Пакет версии 3.x обратно совместим с fr05t1k/esia 2.4. Пакет версии 4.x несовместим с предыдущими версиями, но поддерживает новые эндпоинты ЕСИА: v2/ac и v3/te.
Для работы пакета понадобится КриптоПро или OpenSSL с поддержкой ГОСТ.
Пакет нельзя использовать для новых систем из-за изменений в регламенте ЕСИА. Информационные системы, уже подключенные к ЕСИА, могут использовать пакет до 31 декабря 2026 года. Новые системы могут использовать типовые технические решения, указанные в методических рекомендациях.
4.x
Установка
composer require ilimurzin/esia
Использование
Пакет использует модель контроля на основе делегированного принятия решения. Подробнее в методических рекомендациях.
$config = new \Esia\Config( clientId: 'FJ-VOLGA', clientCertificateHash: 'CD6EA35843FDE0212F301509EDD5B51BA7C954782FA4DE0608550A7FB35D80EE', redirectUrl: 'http://localhost/response.php', portalUrl: 'https://esia-portal1.test.gosuslugi.ru/', scopes: ['fullname', 'email'], ); $esia = new \Esia\Esia( $config, new \Esia\Signer\CliCryptoProSigner( 'HDIMAGE\\\\3f452f01.000\\241C', '1234567890', '/opt/cprocsp/bin/csptest' ) ); // state нужно сгенерировать и сохранить в сессию $state = '7648d7bd-6369-4073-b545-90250f68025e'; $url = $esia->buildUrl($state); // Пользователь переходит по url // После авторизации ЕСИА возвращает пользователя на redirectUrl с параметрами code и state // state нужно сравнить со значением, сохраненным в сессию // Получение маркера доступа в обмен на авторизационный код $token = $esia->getToken($code); // Пакет предоставляет только методы для получения маркера доступа. // Запрос за данными пользователя при необходимости можно сформировать самостоятельно. // Полученный маркер доступа передается в запросы за данными в заголовке Authorization, пример: // $request->withHeader('Authorization', 'Bearer ' . $token->accessToken); // Для запроса за данными пользователя также потребуется oid $oid = $token->getOid(); // Получение нового маркера доступа в обмен на маркер обновления $token = $esia->refreshToken($token->refreshToken);
Отличия от 2.4
- Поддержка новых эндпоинтов ЕСИА: v2/ac и v3/te.
- Все объекты иммутабельные, метод получения токена возвращает объект со всеми данными, а не только маркер доступа.
- Обязательная передача стейта в метод формирования ссылки и возможность передать дополнительные параметры (например, person_filter).
- Сигнеры КриптоПро: через приложение командной строки
csptestили через расширение для PHP. - Отсутствуют методы для получения данных пользователя.
- Метод для получения маркера доступа в обмен на маркер обновления.
3.x
Отличия от 2.4
- Возможность передать стейт и дополнительные параметры (например, person_filter) в метод формирования ссылки.
- Сигнеры КриптоПро (через приложение командной строки или через расширение для PHP).
- Метод для получения ролей пользователя.
- Метод для получения маркера доступа в обмен на маркер обновления.
- Метод для получения маркера доступа на основе полномочий системы-клиента.
- Метод для получения организаций пользователя.
Совместимость
Пакет версии 3.x совместим с fr05t1k/esia 2.4.
Для перехода на форк можно выполнить команды:
composer remove fr05t1k/esia composer require ilimurzin/esia:^3.2
При этом уже написанный код не сломается.
ilimurzin/esia 适用场景与选型建议
ilimurzin/esia 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.28k 次下载、GitHub Stars 达 14, 最近一次更新时间为 2024 年 08 月 07 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 ilimurzin/esia 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ilimurzin/esia 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 2.28k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 14
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-08-07