PHPackages                             asadbekrahimov/eimzo-integration - 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. asadbekrahimov/eimzo-integration

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

asadbekrahimov/eimzo-integration
================================

Laravel package for E-IMZO authentication, PKCS#7 signing, verification, timestamping and demo examples.

v1.0.0(1mo ago)10MITPHPPHP ^7.4|^8.0

Since May 4Pushed 3w agoCompare

[ Source](https://github.com/AsadbekRahimov/eimzo-integration)[ Packagist](https://packagist.org/packages/asadbekrahimov/eimzo-integration)[ RSS](/packages/asadbekrahimov-eimzo-integration/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (11)Versions (2)Used By (0)

asadbekrahimov/eimzo-integration
================================

[](#asadbekrahimoveimzo-integration)

Laravel-пакет для аутентификации через E-IMZO (Узбекистан), подписания документов в формате PKCS#7, подписания CRM-действий, верификации, временных меток (TSA) и набора готовых демо-страниц.

В пакет входит:

- Браузерные мост-скрипты E-IMZO (CAPIWS + EIMZOClient + EimzoBridge).
- Маршруты Laravel и демо-страницы.
- Серверные сервисы для общения с E-IMZO-SERVER.
- Модели и миграции для challenge’ов, сертификатов и подписей.
- Готовые примеры: вход по подписи, подписание документа, подписание CRM-действия.

Требования
----------

[](#требования)

- PHP `^7.4|^8.0`
- Laravel `^8.0|^9.0|^10.0`
- E-IMZO desktop-клиент на ПК пользователя
- Java-сервис E-IMZO-SERVER, доступный вашему Laravel-серверу

`^8.0` включает PHP 8.1, 8.2, 8.3 и 8.4.

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

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

```
composer require asadbekrahimov/eimzo-integration
```

Для локальной разработки до публикации в Packagist:

```
{
  "repositories": [
    {
      "type": "path",
      "url": "../asadbekrahimov-eimzo-integration"
    }
  ],
  "require": {
    "asadbekrahimov/eimzo-integration": "*"
  }
}
```

Опубликовать конфиг, миграции, представления и браузерные ассеты:

```
php artisan vendor:publish --tag=eimzo-config
php artisan vendor:publish --tag=eimzo-migrations
php artisan vendor:publish --tag=eimzo-assets
php artisan migrate
```

Публикация представлений необязательна:

```
php artisan vendor:publish --tag=eimzo-views
```

Переменные окружения
--------------------

[](#переменные-окружения)

```
EIMZO_SERVER_URL=http://185.xxx.xxx.123:8080
EIMZO_FRONTEND_URL=
EIMZO_SERVER_TIMEOUT=20
EIMZO_SERVER_CONNECT_TIMEOUT=3
EIMZO_REQUEST_HOST=

EIMZO_API_KEYS="localhost=96D0C1...;127.0.0.1=A7BCFA5D...;eimzo.test=YOUR_DOMAIN_KEY"

EIMZO_CHALLENGE_TTL=120
EIMZO_USER_MODEL=App\Models\User
EIMZO_USER_LOOKUP_COLUMN=tin
EIMZO_AUTO_REGISTER=false
EIMZO_AUTH_GUARD=web
EIMZO_REDIRECT_AFTER_LOGIN=/

EIMZO_ATTACH_TIMESTAMP=true
EIMZO_SIGN_MODE=attached
EIMZO_STORAGE_DISK=local
EIMZO_STORAGE_PATH=eimzo/signatures

EIMZO_ROUTES_ENABLED=true
EIMZO_ROUTE_PREFIX=eimzo
EIMZO_API_PREFIX=api/eimzo
EIMZO_ASSET_ROUTES_ENABLED=true
EIMZO_ASSET_CACHE_SECONDS=3600
EIMZO_LOCAL_PARSE=true
```

**Доменные API-ключи** выдаёт UZ PKI Technical Centre — демо-значения в `config/eimzo.php` действуют только для `localhost` / `127.0.0.1`. Рекомендуемая форма записи — карта `домен=ключ;домен=ключ`; также принимаются переменные на каждый хост `EIMZO_API_KEY_` и устаревшая запятая-парами. Пакет автоматически отдаёт в браузер только ту запись, которая соответствует текущему хосту запроса. Полная справка — в [CONFIG.md](CONFIG.md). Прокси `/frontend` — опционально, см. [INTEGRATION.md § 5.2](INTEGRATION.md). Внутреннее устройство (CAPIWS, EIMZOClient, E-IMZO-SERVER) — в [ARCHITECTURE.md](ARCHITECTURE.md).

Если ваш nginx/OpenServer всё-таки проксирует Java-сервис через `/frontend`, используйте:

```
EIMZO_SERVER_URL=http://185.xxx.xxx.123:8080
EIMZO_FRONTEND_URL=/frontend
```

Для обычного использования пакета этот nginx-блок не нужен: браузер ходит в Laravel-маршруты `/eimzo/*`, а Laravel сам обращается к Java E-IMZO-SERVER.

Маршруты
--------

[](#маршруты)

Web-маршруты:

- `GET /eimzo`
- `GET /eimzo/login`
- `GET /eimzo/sign`
- `GET /eimzo/verify`
- `GET /eimzo/examples`
- `GET /eimzo/auth/challenge`
- `POST /eimzo/auth/verify`
- `POST /eimzo/sign`
- `POST /eimzo/verify`

API-маршруты по умолчанию монтируются под `/api/eimzo`.

Браузерные ассеты обслуживаются по адресам:

- `/vendor/eimzo/vendor/e-imzo.js`
- `/vendor/eimzo/vendor/e-imzo-client.js`
- `/vendor/eimzo/eimzo.js`

Для production-подобных локальных серверов опубликуйте ассеты, чтобы nginx/apache мог отдавать их как статический JavaScript.

Примеры
-------

[](#примеры)

Откройте:

```
/eimzo/examples

```

Включённые примеры:

- Вход по подписанному challenge.
- Подписание документа.
- Подписание CRM-действия с каноническим JSON.

Подробности по хранению в БД и потокам данных — в [EXAMPLES.md](EXAMPLES.md).

Пошаговую интеграцию в существующую CRM см. в [INTEGRATION.md](INTEGRATION.md).

Полный справочник возможностей (desktop + mobile API) — в [USAGE.md](USAGE.md).

Подписание CRM-действий
-----------------------

[](#подписание-crm-действий)

Для CRM-действий подписываемый документ должен быть каноническим JSON, который сгенерировал бэкенд, например:

```
{
  "action": "approve_invoice",
  "amount": 1500000,
  "currency": "UZS",
  "entity_id": 1024,
  "entity_type": "invoice",
  "issued_at": "2026-05-03T19:20:00+05:00",
  "nonce": "example-nonce-123"
}
```

Бизнес-смысл храните отдельно и связывайте с `eimzo_signatures.id`:

```
signed_actions
- user_id
- action
- entity_type
- entity_id
- payload_json
- payload_hash
- signature_id
- certificate_id
- signed_at
- ip
- user_agent

```

Тестирование
------------

[](#тестирование)

```
composer install
composer test
```

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance94

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 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

Unknown

Total

1

Last Release

36d ago

### Community

Maintainers

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

---

Top Contributors

[![AsadbekRahimov](https://avatars.githubusercontent.com/u/43408785?v=4)](https://github.com/AsadbekRahimov "AsadbekRahimov (3 commits)")

---

Tags

laravelpkcs7digital-signatureУзбекистанe-imzoeimzo

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/asadbekrahimov-eimzo-integration/health.svg)

```
[![Health](https://phpackages.com/badges/asadbekrahimov-eimzo-integration/health.svg)](https://phpackages.com/packages/asadbekrahimov-eimzo-integration)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3325.1M337](/packages/psalm-plugin-laravel)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9732.3M121](/packages/roots-acorn)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k14.1M120](/packages/laravel-pulse)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45344.0k1](/packages/pressbooks-pressbooks)[laravel/cashier-paddle

Cashier Paddle provides an expressive, fluent interface to Paddle's subscription billing services.

268880.7k3](/packages/laravel-cashier-paddle)[moonshine/moonshine

Laravel administration panel

1.3k239.9k72](/packages/moonshine-moonshine)

PHPackages © 2026

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