phpsoftbox / auth
Auth component for the PhpSoftBox framework
Requires
- php: ^8.5
- phpsoftbox/clock: dev-master
- phpsoftbox/cookie: dev-master
- phpsoftbox/data-casting: dev-master
- phpsoftbox/session: dev-master
- psr/container: ^2.0
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- psr/simple-cache: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- phpsoftbox/cli-app: dev-master
- phpsoftbox/cs-fixer: ^1.1.0
- phpsoftbox/database: dev-master
- phpsoftbox/http-message: dev-master
- phpsoftbox/orm: dev-master
- phpunit/phpunit: ^11.2
Suggests
- phpsoftbox/database: Required for database-backed users, tokens, remember tokens, authorization stores and DatabaseOwnerResolver.
- phpsoftbox/orm: Required only for DatabaseUserProvider identity hydration.
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-08-31 20:35:47 UTC
README
Компонент аутентификации и авторизации для Application.
Документация
- Guard
- Remember и Intended URL
- Middleware
- Роли и пермишены
- Access Policy
- Защита аккаунта
- API credentials и enrollment
- CLI
Policy-based permissions
Компонент поддерживает base/own сценарии через RequiresAnyPermission,
PermissionCase и policy registry. Для route-param и ownership subject есть
готовые resolver-ы, включая optional DatabaseOwnerResolver для схемы
id -> owner_id.
Подробнее: Access Policy.
Миграции
Минимальные примеры таблиц для session storage и lifecycle-token лежат в
database/migrations. Bearer/API tokens и remember-me
tokens хранятся в одной таблице user_tokens и различаются purpose в колонке
token_type (user_bearer, user_remember и другие настроенные значения).
Для API credentials дополнительно используется audience: стабильный идентификатор
API, в котором credential разрешено предъявлять. purpose описывает auth flow,
а audience — его получателя. Например, два credentials одного субъекта могут
иметь общий purpose api_access, но разные audiences catalog и warehouse.
Одноразовые enrollment credentials обслуживаются отдельным
DatabaseEnrollmentCredentialStore. Он проверяет audience, срок действия и
атомарно выставляет used_datetime. Callback метода exchange() позволяет в той
же транзакции выпустить отдельный постоянный credential для каждого разрешённого API.