vanta / esia-gateway-client
Pure client for ESIA gateway
0.5.3
2024-10-27 19:15 UTC
Requires
- php: ^8.2
- guzzlehttp/psr7: ^2.0
- phpdocumentor/reflection-docblock: ^5.0
- phpstan/phpdoc-parser: ^1.0
- psr/http-client: ^1.0
- psr/http-client-implementation: ^1.0
- symfony/property-access: ^6.4|^7.0
- symfony/serializer: ^6.4|^7.0
- vanta/esia-struct: ^0.1
- yiisoft/http: ^1.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.17
- guzzlehttp/guzzle: ^7.7
- phpstan/phpstan: ^1.10
- symfony/http-client: 5.4|^6.0
- symfony/var-dumper: ^6.4|^7.0
README
Клиент для общения со шлюзом ЕСИА. Текущая версия поддерживает только взаимодействие через ЦПГ HTTP API.
Установка
Минимальная версия PHP: 8.1
- Выполнить
composer require vanta/esia-gateway-client
- Обязательно установить PSR-совместимый клиент
Использование
Создание инстанса клиента:
use GuzzleHttp\Psr7\HttpFactory; use Symfony\Component\HttpClient\CurlHttpClient; use Symfony\Component\HttpClient\Psr18Client; use Vanta\Integration\EsiaGateway\RestClientBuilder; use Vanta\Integration\EsiaGateway\Infrastructure\HttpClient\ConfigurationClient; $builder = RestClientBuilder::create( new Psr18Client(new CurlHttpClient(), new HttpFactory(), new HttpFactory()), new ConfigurationClient( clientId: 'YOUR_CLIENT_ID', clientSecret: 'YOUR_CLIENT_SECRET', url: 'YOUR_URL_GATEWAY', redirectUri: 'https://auth.vanta.ru' ) ); $client = $builder->createEsiaGatewayClient('https://demo.gate.esia.pro', 'https://pos-credit.ru');
Генерация URL для авторизации пользователя:
$authorizationUrl = $builder->createAuthorizationUrlBuilder() ->withPermission(ScopePermission::DRIVERS_LICENSE_DOC) ->withoutPermission(ScopePermission::MOBILE) ->build() ;
Обмен авторизационного кода на токен доступа и токен обновления:
$accessToken = $client->getPairKeyByAuthorizationCode($code);
Обмен токена обновления на токен доступа и новый токен обновления:
$accessToken = $client->getPairKeyByRefreshToken($refreshToken);
Получение информации о пользователе:
$userInfo = $client->getUserInfo($accessToken);