PHP code example of pavelrockjob / esia

1. Go to this page and download the library: Download pavelrockjob/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/ */

    

pavelrockjob / esia example snippets


//index.php

ew \Pavelrockjob\Esia\EsiaProvider(new \Pavelrockjob\Esia\EsiaConfig([
    //Куда отправляем запрос (https://esia-portal1.test.gosuslugi.ru тестовый сервер есиа)
    'esiaUrl' => 'https://esia-portal1.test.gosuslugi.ru',
    //Редирект на страницу после успешной аутентификации
    'redirectUrl' => 'http://127.0.0.1/callback.php',
    //Мнемоника
    'clientId' => 'МНЕМОНИКА_ИЗ_ЕСИА',
    //Доступные скоупы
    'scopes' => [\Pavelrockjob\Esia\Enums\EsiaScope::fullname, \Pavelrockjob\Esia\Enums\EsiaScope::openid]
]),
//Signer, штука которая умеет шифровать строки по алгоритму ГОСТ Р 34.11-2012
//CustomSigner не будет работать, нужно реализовать метот sign
new \Pavelrockjob\Esia\Signers\CustomSigner());

//Получаем ссылку на вход в есиа 
var_dump($provider->getAuthLink());


$provider = new \Pavelrockjob\Esia\EsiaProvider(new \Pavelrockjob\Esia\EsiaConfig([
    'esiaUrl' => 'https://esia-portal1.test.gosuslugi.ru',
    'redirectUrl' => 'http://127.0.0.1/callback.php',
    'clientId' => 'МНЕМОНИКА_ИЗ_ЕСИА',
    'scopes' => [\Pavelrockjob\Esia\Enums\EsiaScope::fullname, \Pavelrockjob\Esia\Enums\EsiaScope::openid]
]),
new \Pavelrockjob\Esia\Signers\CustomSigner());

//После успешной авторизации можем обращатся к ESIA для получения доступных данных

//Получение OID
$provider->getOid()

//Пример получения персональной информации о пользователе
//Вся доступная информация
$personalData = $provider->api()->prns()->get();
//Конкретное поле
$personalData->getFirstName()

//Персональные документы пользователя
$documents = $provider->api()->prns()->docs();
//Существуют магические методы для получения документов
$provider->api()->prns()->docs()->getRfPassport();

//Установите конфиги в config/esia.php
$provider = new EsiaProvider(new EsiaConfig([
            //Установите доступные скоупы
            'scopes' => [
                EsiaScope::openid,
                EsiaScope::fullname,
            ],
        ]), 
        //Signer, штука которая умеет шифровать строки по алгоритму ГОСТ Р 34.11-2012
        //CustomSigner не будет работать, нужно реализовать метот sign
        new \Pavelrockjob\Esia\Signers\CustomSigner());

//Получаем ссылку на вход в есиа 
dd($provider->getAuthLink());


$provider = new EsiaProvider(new EsiaConfig([
            'scopes' => [
                EsiaScope::openid,
                EsiaScope::fullname,
            ],
        ]), 
        new \Pavelrockjob\Esia\Signers\CustomSigner());

//После успешной авторизации можем обращатся к ESIA для получения доступных данных
dd($provider->getOid())
shell
php artisan vendor:publish --provider="Pavelrockjob\Esia\Providers\LaravelProvider"