← К списку версий
v0.10.0
29.07.2026
PATCH
Мультиаккаунты («Вход как в Google»)
Added
- Мультиаккаунты (Google-style) login.blade.php переработан: при входе отображаются известные аккаунты (аватар, имя, email) → клик для быстрого переключения → «+ Другой аккаунт» → форма email/пароль. «× Выйти из всех аккаунтов» на странице логина и в /settings/security
- Таблица `client_auth_known_accounts` хранит «запомненные» устройства (привязку аккаунта к устройству) с уникальными индексами для корректного переключения между аккаунтами
- Реализован флаг «Запомнить устройство» на форме входа: при включении устройство считается доверенным, и сессия сохраняется между визитами.
- Устройству клиента присваивается анонимный долговременный идентификатор, который связывает «запомненные» аккаунты на этом устройстве
- ClientAuthController методы getDeviceId(), saveKnownAccount(), switchAccount(), forgetAccount(), logoutAll(), knownAccounts() (API), securitySettings(), toggleAutoLogin()
- Реализован безопасный механизм «запомненного устройства»: для доверенных устройств пользователя сессия восстанавливается автоматически, повторный ввод пароля не требуется. Middleware зарегистрирован в глобальной цепочке обработки запросов.
- Dropdown профиля — «Сменить пользователя» в app.blade.php profile dropdown секция с загруженными через /api/auth/known-accounts аккаунтами + кнопка «×» забыть аккаунт для каждого
- Админ-страница безопасности `/admin/users/{id}/security/`: управление «запоминанием устройства», принудительное завершение сессий, просмотр и очистка известных устройств
- Страница `/settings/security`: карточка учётной записи (имя, email, роль, последний вход), переключатель «запомнить устройство», список известных устройств с кнопкой удаления, кнопка «Выйти из всех аккаунтов»
- Routes POST /login/switch/{id}, POST /login/forget/{id}, POST /login/logout-all, GET /settings/security, POST /settings/security/toggle-auto-login, GET /api/auth/known-accounts, GET+POST /admin/users/{id}/security
Changed
- Версия платформы: 0.9.0 → 0.10.0
- `app/Http/Controllers/Auth/ClientAuthController.php` — полный рефакторинг: добавлены мультиаккаунт-методы и управление запоминанием устройств
- `resources/views/auth/login.blade.php` — переработан: два состояния (список аккаунтов / форма входа), анимация переключения, кнопка «Выйти из всех»
- `resources/views/layouts/app.blade.php` — добавлена секция «Сменить пользователя» в user dropdown + JavaScript fetch known-accounts + forget buttons
- `routes/web.php` — добавлены 8 новых маршрутов для мультиаккаунтов, безопасности и админ-безопасности
- `resources/views/admin/users/edit.blade.php` — добавлена кнопка «Безопасность» в actions
- `config/app.php` — `APP_VERSION` по умолчанию: `0.9.0` → `0.10.0`
- `.env` — `APP_VERSION=0.9.0` → `0.10.0`
- `bootstrap/app.php` — зарегистрирован AutoLogin middleware в web-группе
Files
- `database/migrations/2026_07_29_100001_create_client_auth_known_accounts_table.php` — создание таблицы known_accounts
- `database/migrations/2026_07_29_100002_add_auto_login_to_clients_table.php` — добавление колонки auto_login
- `app/Models/ClientAuthKnownAccount.php` — модель для known_accounts
- `app/Http/Middleware/AutoLogin.php` — middleware автоматического входа
- `app/Http/Controllers/Auth/ClientAuthController.php` — рефакторинг с мультиаккаунтами
- `app/Http/Controllers/Admin/AdminUserController.php` — добавлены editSecurity/updateSecurity
- `resources/views/auth/login.blade.php` — переработан с account chooser
- `resources/views/settings/security.blade.php` — новая страница безопасности
- `resources/views/admin/users/security.blade.php` — новая админ-страница безопасности
- `resources/views/layouts/app.blade.php` — секция смены пользователя + forget buttons
- `resources/views/admin/users/edit.blade.php` — кнопка «Безопасность»
- `routes/web.php` — новые маршруты
- `bootstrap/app.php` — регистрация AutoLogin middleware