verdeect / identity-laravel
Интеграция продукта установки Verdeect с Identity Service
Requires
- php: ^8.3
- illuminate/http: ^13.0
- illuminate/support: ^13.0
- php-amqplib/php-amqplib: ^3.7
- web-token/jwt-library: ^4.0
Requires (Dev)
- larastan/larastan: ^3.11
- orchestra/testbench: ^11.2
- pestphp/pest: ^5.1
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-16 13:56:49 UTC
README
Интеграция продукта установки Verdeect с Identity Service: поток входа, токены, профиль, разрешение имён, данные кросс-сервисной навигации и потребитель сообщений установки.
Кода интеграции в самом продукте нет. Обязательства продукта установки одинаковы для всех продуктов экосистемы; переписывать их в каждом означало бы переписывать и ошибки в них.
Что даёт пакет
- Документ обнаружения и кэш JWKS с перечитыванием по неизвестному
kid - Поток кода с PKCE, порождение и проверка
stateиnonce - Хранение токенов ключом по
sid, обмен под блокировкой и с упреждением - Профиль текущего пользователя из
/userinfoс кэшем и формами имени - Выход через
/end-session - Потребление сообщений установки и механика отметок гашения сессий
- Клиенты
/api/users/resolveи/api/navigationслужебным токеном - Роль и ограничения вошедшего из текущего токена (
CurrentIdentity) и посредники маршрутов: требование роли и запрет записи при ограничении - Сборку разделяемых свойств Inertia и вычисление origin установки для политики содержимого
- Тестовую оснастку для наборов продукта
Что остаётся продукту
Конфигурация двух клиентов, регистрация middleware, реализация точек расширения, монтирование компонентов навигации и отображение имён на своих экранах.
Компоненты навигации поставляет отдельный npm-пакет
@verdeect/identity-nav-vue:
этот пакет их не публикует.
Быстрый старт
composer require verdeect/identity-laravel
Три шага, без которых вход не заработает:
- Заполнить окружение — адрес установки и два клиента (Установка и настройка).
- Добавить
EnforceSessionMarksиRefreshIdentityTokenв группуwebименно в этом порядке, повеситьRequireIdentitySessionалиасом на экраны (Встраивание). - Отдать
IdentityProps::share()разделяемыми свойствами и включитьIdentityOrigin::resolve()в политику содержимого (Встраивание).
Маршруты /auth/login, /auth/callback и /auth/logout пакет регистрирует
сам — объявлять их не нужно.
Закрыть экраны по роли
Часто нужное сразу после входа. Псевдоним объявляется рядом с identity:
$middleware->alias([ 'identity' => RequireIdentitySession::class, 'identity.role' => RequireIdentityRole::class, ]);
Роль называет маршрут, а не имя класса:
Route::middleware(['identity', 'identity.role:admin'])->group(function (): void { Route::get('/settings', SettingsController::class); });
Роль и ограничения вошедшего в коде — через CurrentIdentity; разбор токена
остаётся внутри пакета. Разбор случаев, режим «только чтение» и почему решать
о записи проверкой read_only нельзя — в разделе «Права доступа»
(Встраивание).
Документация
| Страница | О чём |
|---|---|
| Установка и настройка | требования, два клиента, переменные окружения, доверие посреднику |
| Встраивание | middleware и их порядок, маршруты, разделяемые свойства, политика содержимого, выход, права доступа |
| Данные пользователей | профиль, формы имени, пакетное разрешение имён, данные рейла, деградация |
| Сообщения установки | потребитель, supervisor, отметки гашения, очередь продукта |
| Точки расширения | IIdentityEventHandler, IProfileDecorator |
| Тестирование | оснастка поддельной установки, что проверять в продукте |
| Чек-лист и запреты | что проверить перед первым входом и чего делать нельзя |
Прогон
composer test # 82 набора на orchestra/testbench composer types:check # PHPStan уровень 7
Те же проверки и несколько сверх них собраны в Makefile: make check —
разбор и прогон разом, make test-filter FILTER='…' — один набор,
make validate — проверка манифеста перед тегом. Весь список — make help.
Собственного приложения у пакета нет — его поднимает testbench. База данных
не подключается: пакет в неё не пишет, sub хранит продукт.