PHP code example of ilimurzin / esia

1. Go to this page and download the library: Download ilimurzin/esia library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

ilimurzin / esia example snippets


$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);