vanta / esia-gateway-client
Pure client for ESIA gateway
0.4.15
2024-04-26 15:32 UTC
Requires
- php: ^8.1
- amphp/byte-stream: ^2.1
- brick/date-time: ^0.5.3
- brick/math: ^0.11.0
- brick/money: ^0.8.1
- brick/phonenumber: ^0.4
- doctrine/annotations: ^1.0|^2.0
- 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: ^5.4|^6.0
- symfony/serializer: ^5.4|^6.0
- symfony/uid: ^5.4|^6.0
- 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: ^5.4|^6.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\Client\DefaultEsiaGatewayClientBuilder; $builder = DefaultEsiaGatewayClientBuilder::create( new Psr18Client(new CurlHttpClient(), new HttpFactory(), new HttpFactory()), 'YOUR_CLIENT_ID', 'YOUT_CLIENT_SECRET', ); $client = $builder->createEsiaGatewayClient('https://demo.gate.esia.pro', 'https://pos-credit.ru');
Генерация URL для авторизации пользователя:
$authorizationUrl = $client->createAuthorizationUrlBuilder() ->withPermission(ScopePermission::DRIVERS_LICENSE_DOC) ->withoutPermission(ScopePermission::MOBILE) ->build() ;
Обмен авторизационного кода на токен доступа и токен обновления:
$accessToken = $client->getPairKeyByAuthorizationCode($code);
Обмен токена обновления на токен доступа и новый токен обновления:
$accessToken = $client->getPairKeyByRefreshToken($refreshToken);
Получение информации о пользователе:
$userInfo = $client->getUserInfo($accessToken);