PHPackages                             besnovatyj/yii2-cms-oauth2 - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. besnovatyj/yii2-cms-oauth2

ActiveYii2-extension[HTTP &amp; Networking](/categories/http)

besnovatyj/yii2-cms-oauth2
==========================

OAuth2-сервер (интеграция league/oauth2-server) для REST-слоя Yii2 CMS: выдача и валидация Bearer-токенов.

v1.0.2(1mo ago)0111MITPHPPHP &gt;=8.4

Since Jul 6Pushed 1mo agoCompare

[ Source](https://github.com/besnovatyj/yii2-cms-oauth2)[ Packagist](https://packagist.org/packages/besnovatyj/yii2-cms-oauth2)[ RSS](/packages/besnovatyj-yii2-cms-oauth2/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (16)Versions (4)Used By (1)

besnovatyj/yii2-cms-oauth2
==========================

[](#besnovatyjyii2-cms-oauth2)

OAuth2-сервер для REST-слоя Yii2 CMS — тонкая интеграция библиотеки [`league/oauth2-server`](https://oauth2.thephpleague.com/) в Yii2. Отвечает за **выдачу**токенов (grant types: `password`, `refresh_token`) и **валидацию** Bearer-токенов на входящих REST-запросах.

Это инфраструктурный фундамент REST: от него зависят REST-контроллеры любых модулей (по аналогии с тем, как backend/frontend-контроллеры зависят от своих приложений).

Состав
------

[](#состав)

- `AuthorizationServer` / `ResourceServer` — Yii-компоненты-обёртки над league (выдача / валидация).
- `bridge/` — адаптеры под интерфейсы league (`AccessTokenEntity`, `ClientEntity`, `RefreshTokenEntity`, `ScopeEntity`, `UserEntity`, `Psr7Factory` — мост Yii ↔ PSR-7).
- `entities/` — ActiveRecord под таблицы `oauth2_*` (клиенты, access/refresh токены, scopes).
- `repositories/` — реализации репозиториев league.
- `filters/OAuth2BearerAuth` — Yii-фильтр авторизации для контроллеров.
- `migrations/` — схема БД (таблицы `oauth2_*` + дефолтные scopes), устанавливается через modman.

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

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

```
composer require besnovatyj/yii2-cms-oauth2
```

Миграции накатываются менеджером модулей (modman) при установке. Затем:

1. **Сгенерировать ключи** (в репозиторий не входят, см. `docs/keys/README.md`): ```
    bash docs/generate-keys.sh
    ```
2. **Смонтировать компоненты в конфиге приложения** (composition root, напр. `app/rest/config/main.php`): ```
    'components' => [
        'oauth2AuthServer' => [
            'class' => \Besnovatyj\Oauth2\AuthorizationServer::class,
            'privateKeyPath' => '@app/.../keys/private.key',
            'encryptionKey'  => '...', // base64_encode(random_bytes(32)); в прод — Docker Secrets
            'accessTokenTTL' => 3600,
            'refreshTokenTTL' => 2592000,
            'keyPermissionsCheck' => !YII_DEBUG,
        ],
        'oauth2ResourceServer' => [
            'class' => \Besnovatyj\Oauth2\ResourceServer::class,
            'publicKeyPath' => '@app/.../keys/public.key',
            'keyPermissionsCheck' => !YII_DEBUG,
        ],
    ],
    ```
3. Endpoint выдачи токена (`POST /oauth2/token`) — контроллер в REST-приложении (см. пример `app/rest/controllers/OAuth2Controller.php`).

Полная документация, примеры запросов, SQL и TypeScript-клиент — в `docs/`.

⚠️ Остаточная зависимость от модуля User
----------------------------------------

[](#️-остаточная-зависимость-от-модуля-user)

`src/repositories/UserRepository.php` (реализация «password grant») пока ссылается напрямую на `Besnovatyj\User\repositories\UserReadRepository` — резолвится через DI-контейнер (`Yii::$container->get(...)`). Это единственная точка связи с ядром/модулем User.

**План развязки** (см. `docs/MIGRATION-NOTE.md` и общий отчёт `GITHUB_MIGRATION_READINESS.md`, раздел B6): инвертировать через контракт `UserProvider` в `yii2-cms-contracts` (метод вида `findActiveByUsername()` / `validateCredentials()`), либо перенести этот репозиторий в пакет `besnovatyj/yii2-cms-user` при его выделении. До этого пакет корректно работает в составе приложения, где `Besnovatyj\User` доступен, но **автономно (без User) собирается, но не функционирует password-grant**.

Тот же residual-момент в dev-скрипте `docs/dev/create-test-user.php` (`Besnovatyj\User\entities\User`).

Зависимости
-----------

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

`php >=8.4`, `yiisoft/yii2`, `league/oauth2-server ^9`, `nyholm/psr7`, `nyholm/psr7-server`, `psr/http-message`, `besnovatyj/yii2-cms-kernel`, `besnovatyj/yii2-cms-contracts`.

Лицензия
--------

[](#лицензия)

MIT.

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance91

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity53

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 ~2 days

Total

3

Last Release

43d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4dab004c4cab25d241bbf453f63cb48e6226d00bd84f50315e735c257c4a1b40?d=identicon)[besnovatyj](/maintainers/besnovatyj)

---

Top Contributors

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

---

Tags

apirestoauth2cmsyii2

### Embed Badge

![Health badge](/badges/besnovatyj-yii2-cms-oauth2/health.svg)

```
[![Health](https://phpackages.com/badges/besnovatyj-yii2-cms-oauth2/health.svg)](https://phpackages.com/packages/besnovatyj-yii2-cms-oauth2)
```

###  Alternatives

[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.8M683](/packages/shopware-core)[getgrav/grav

Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS

15.6k88.1k1](/packages/getgrav-grav)[moonshine/moonshine

Laravel administration panel

1.3k268.2k89](/packages/moonshine-moonshine)[sproutcms/cms

Enterprise content management and framework

243.0k4](/packages/sproutcms-cms)

PHPackages © 2026

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