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
README
Интеграция продукта установки Verdeect с Identity Service: поток входа, токены, профиль, разрешение имён, данные кросс-сервисной навигации и потребитель сообщений установки.
Кода интеграции в самом продукте нет. Обязательства продукта установки одинаковы для всех продуктов экосистемы; переписывать их в каждом означало бы переписывать и ошибки в них.
Что даёт пакет
- Документ обнаружения и кэш JWKS с перечитыванием по неизвестному
kid - Поток кода с PKCE, порождение и проверка
stateиnonce - Хранение токенов ключом по
sid, обмен под блокировкой и с упреждением - Профиль текущего пользователя из
/userinfoс кэшем и формами имени - Выход через
/end-session - Потребление сообщений установки и механика отметок гашения сессий
- Клиенты
/api/users/resolveи/api/users/servicesслужебным токеном - Сборку разделяемых свойств 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 пакет регистрирует
сам — объявлять их не нужно.
Документация
| Страница | О чём |
|---|---|
| Установка и настройка | требования, два клиента, переменные окружения, доверие посреднику |
| Встраивание | 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 хранит продукт.