PHPackages                             roilafx/espocrmevo - 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. roilafx/espocrmevo

ActiveLibrary

roilafx/espocrmevo
==================

Интеграция EspoCRM для Evolution CMS

05↓75%PHP

Since Jul 17Pushed 1mo agoCompare

[ Source](https://github.com/Kolya1222/espocrmevo)[ Packagist](https://packagist.org/packages/roilafx/espocrmevo)[ RSS](/packages/roilafx-espocrmevo/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

EspoCRM Integration for Evolution CMS
=====================================

[](#espocrm-integration-for-evolution-cms)

Пакет обеспечивает единый вход (SSO) администраторов Evolution CMS в EspoCRM по протоколу OpenID Connect, а также встраивает интерфейс CRM в админ‑панель CMS.

Возможности
-----------

[](#возможности)

- OIDC‑провайдер (Authorization Code Flow с PKCE) на базе `league/oauth2-server`.
- Генерация `id_token` с поддержкой `nonce`.
- Хранение авторизационных кодов в БД.
- Эндпоинты: `/oidc/authorize`, `/oidc/token`, `/oidc/userinfo`, `/oidc/jwks`.
- Встроенный iframe для доступа к EspoCRM из панели управления CMS.

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

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

- Evolution CMS ≥ 3.x (с Laravel‑компонентами).
- PHP ≥ 8.2 с расширениями openssl, json, pdo\_mysql, sodium (рекомендуется).
- EspoCRM, установленная отдельно (пакет не содержит CRM). По умолчанию ожидается, что EspoCRM доступна по пути /manager/media/espoCRM.

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

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

1. Установка пакета

    ```
    php artisan package:installrequire roilafx/Espocrmevo "*"
    ```
2. Публикация стилей и скриптов

    ```
    php artisan vendor:publish --provider="roilafx\Espocrmevo\EspocrmevoServiceProvider"
    ```
3. Выполните миграции:

    ```
    php artisan migrate
    ```
4. Сгенерируйте RSA‑ключи (в core/storage/keys):

    ```
    openssl genrsa -out storage/keys/private.key 2048
    openssl rsa -in storage/keys/private.key -pubout -out storage/keys/public.key
    ```
5. Сгенерируйте ключ шифрования Выполните в терминале:

    ```
    php -r "echo 'def00000' . bin2hex(random_bytes(32));"
    ```
6. Полученный ключ занести в файл .env именем encryptionKey
7. Установить EspoCRM Перейдите в модуль и выполните установку. Потребуется дополнительная БД. Я брал за основу вот этот релиз и на нем все тестировал [GitHub](https://github.com/espocrm/espocrm/releases/tag/10.0.2). Просто разархивировал его в /manager/media/espoCRM. Чтобы в espoCRM был его index.php

Настройка
---------

[](#настройка)

### Создание OIDC‑клиента

[](#создание-oidcклиента)

Пакет предоставляет консольную команду для создания клиента:

```
php artisan espocrmevo:create-client --id=espocrm --redirect="https://your.domain/manager/media/espoCRM/oauth-callback.php" --name="EspoCRM"
```

Если не указать --secret, будет сгенерирован случайный ключ длиной 64 символа. redirect можно скопировать из Админиистративной панели EcpoCRM Администрирование -&gt; Аутентификация -&gt; OIDC Запись появится в таблице oidc\_clients.

### Переменные окружения (.env)

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

ПеременнаяНазначениеПо умолчаниюOIDC\_ISSUERИздатель токенов (iss)route.localOIDC\_AUDIENCEПолучатель токенов (aud)espocrmOIDC\_KEY\_IDИдентификатор ключа (kid) в JWKS1encryptionKeyКлюч шифрования OAuth‑кодов (обязателен)—### Конфигурация EspoCRM

[](#конфигурация-espocrm)

В административной панели EspoCRM:
**Администрирование -&gt; Аутентификация -&gt; OIDC**

- Клиент ID: `espocrm`
- Секрет клиента: если задавали
- Authorization Endpoint: `https://your.domain/oidc/authorize`
- Token Endpoint: `https://your.domain/oidc/token`
- UserInfo Endpoint: `https://your.domain/oidc/userinfo`
- JWKS Endpoint: `https://your.domain/oidc/jwks`
- Scopes: `openid profile email phone`
- Username Claim: `username` (рекомендуется)
- Создать пользователя: +
- Включить PKCE: +

Структура пакета
----------------

[](#структура-пакета)

```
core/custom/packages/espocrmevo/
├── src/
│   ├── Commands/              # CreateClient
│   ├── Controllers/           # OIDCController, CrmController
│   ├── Entities/              # Сущности токенов, кодов
│   ├── Grants/                # NonceAuthCodeGrant
│   ├── Models/                # OidcClient, AuthCode
│   ├── Repositories/          # Репозитории для League
│   ├── RequestTypes/          # NonceAuthorizationRequest
│   ├── migrations/            # Миграции таблиц
│   └── EspocrmevoServiceProvider.php
├── routes.php                 # Маршруты для iframe
├── routes_oidc.php            # Маршруты OIDC
└── README.md

```

Ключевые особенности реализации
-------------------------------

[](#ключевые-особенности-реализации)

- `nonce` передаётся не через сессию, а через расширенный объект авторизации и БД.
- Шифрование кода – через `defuse/php-encryption` (как в библиотеке).
- Поддержка PKCE включена по умолчанию.

###  Health Score

20

—

LowBetter than 12% of packages

Maintenance60

Regular maintenance activity

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

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.

### Community

Maintainers

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

---

Top Contributors

[![Kolya1222](https://avatars.githubusercontent.com/u/48295740?v=4)](https://github.com/Kolya1222 "Kolya1222 (7 commits)")

### Embed Badge

![Health badge](/badges/roilafx-espocrmevo/health.svg)

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

PHPackages © 2026

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