О платформе Войти
← К списку версий
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