PHPackages                             pavelrockjob/esia - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. pavelrockjob/esia

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

pavelrockjob/esia
=================

Esia openid and auth2 provider

1.0.61(3y ago)45301PHP

Since Dec 18Pushed 3y ago1 watchersCompare

[ Source](https://github.com/pavelrockjob/esia)[ Packagist](https://packagist.org/packages/pavelrockjob/esia)[ RSS](/packages/pavelrockjob-esia/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (8)Used By (0)

ЕСИА (Госуслуги) PHP/Laravel
============================

[](#есиа-госуслуги-phplaravel)

Пакет для подключения и работы с ЕСИА.

### Пакет содержит базовый функционал для работы с API

[](#пакет-содержит-базовый-функционал-для-работы-с-api)

Подключение к ЕСИА происходит путем выполнения требований от разработчиков госуслуг. Подробнее о подключении вашей системы к ЕСИА читайте тут:

Данный пакет реализован на методических рекомендациях по использованию ЕСИА [https://digital.gov.ru/uploaded/presentations/metodicheskierekomendatsiipoispolzovaniyuesiav313\_VaCOzE9.pdf](https://digital.gov.ru/uploaded/presentations/metodicheskierekomendatsiipoispolzovaniyuesiav313_VaCOzE9.pdf)

### Внимание

[](#внимание)

Для запросов в ЕСИА потребуется подписывать запрос. Для подписи запросов потребуется сертификат, который должен быть предварительно зарегестрирован в ЕСИА и привязан у к учетной записи системы-клиента. ЕСИА использует сертификаты в формате X.509 и взаимодействует с алгоритмами формирования электронной подписи ГОСТ Р 34.10-2012 и криптографического хэширования ГОСТ Р 34.11-2012.

Данная библиотека не может самостоятельно подписывать строки алгоритмами ГОСТ. Для этого нужно реализовать собственный Signer.

На данное время в библиотеке реализованы только несколько персональных методов из api. Вы сможете получить информацию о пользователе и его документы.

Установка
---------

[](#установка)

```
composer require "pavelrockjob/esia"
```

### Laravel (Публикация конфигов)

[](#laravel-публикация-конфигов)

```
php artisan vendor:publish --provider="Pavelrockjob\Esia\Providers\LaravelProvider"
```

Пример использования библиотеки
-------------------------------

[](#пример-использования-библиотеки)

index.php

```
//index.php

require "vendor/autoload.php";

$provider = new \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());
```

callback.php

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

### Laravel

[](#laravel)

EsiaController::index()

```
//Установите конфиги в 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());
```

EsiaController::callback()

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

//После успешной авторизации можем обращатся к ESIA для получения доступных данных
dd($provider->getOid())
```

Помощь с Signer, пишите в телеграмм @Milenkij

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

7

Last Release

1239d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f44c21daf2f2909ceefc3af9bf45a3e2a4a950d6c0d88b46a1f190924dadda1c?d=identicon)[pavelrockjob](/maintainers/pavelrockjob)

---

Top Contributors

[![pavelrockjob](https://avatars.githubusercontent.com/u/111519868?v=4)](https://github.com/pavelrockjob "pavelrockjob (11 commits)")

### Embed Badge

![Health badge](/badges/pavelrockjob-esia/health.svg)

```
[![Health](https://phpackages.com/badges/pavelrockjob-esia/health.svg)](https://phpackages.com/packages/pavelrockjob-esia)
```

###  Alternatives

[josiasmontag/laravel-recaptchav3

Recaptcha V3 for Laravel package

2641.6M2](/packages/josiasmontag-laravel-recaptchav3)[rahul900day/laravel-captcha

Different types of Captcha implementation for Laravel Application.

10715.9k](/packages/rahul900day-laravel-captcha)[simplesamlphp/simplesamlphp-module-oidc

A SimpleSAMLphp module adding support for the OpenID Connect protocol

5016.9k1](/packages/simplesamlphp-simplesamlphp-module-oidc)[kinde-oss/kinde-auth-php

Kinde PHP SDK for authentication

2369.5k3](/packages/kinde-oss-kinde-auth-php)[descope/descope-php

Descope SDK for PHP

3814.0k](/packages/descope-descope-php)[njoguamos/laravel-turnstile

A laravel wrapper for https://developers.cloudflare.com/turnstile/

2315.9k2](/packages/njoguamos-laravel-turnstile)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
