другой пользователь (допустим с того же пк, из под режима инкогнито)?
Auth::logout(); Auth::logoutCurrentDevice(); Auth::logoutOtherDevices();
не срабатывает. Попробовал с разных устройств. Что я делаю не так? И для чего нужно передавать пароль, в качестве аргумента в logoutOtherDevices()?
https://github.com/laravel/framework/blob/9.x/src/Illuminate/Auth/SessionGuard.php#L648
Говорю же, нужно на сокеты подписываться (перед этим их поднять), чтобы тригерить выход "сейчас". https://github.com/laravel/framework/blob/9.x/src/Illuminate/Auth/SessionGuard.php#L755-L768 Если без них будешь вызывать метод, конечно ни у кого ничего не произойдёт.
Тригерится эвент https://github.com/laravel/framework/blob/9.x/src/Illuminate/Auth/Events/OtherDeviceLogout.php, на который тебе нужно навесить listener в сервис-провайдере.
не совсем понимаю для чего сокеты нужны. Полагал, что для того что бы без действий пользователя автоматически "перезагрузилась" страница и выкинуло пользователя, но тут я думал что хотя бы выкинет просто если пользователь сам перезагрузит страницу
А посредника включил, точнее разкомментировал в группе web?
Перевожу на наш: мидлварю
а где это? Я правильно понимаю что вы про middleware?
сделал. Всё равно держатся обе сессии (т.е. первого не выбивает пользователя из системы, после авторизации второго)
хотя возможно ошибся. Изменения не выгрузил. Сейчас по другому проверю
А как правильно пользователя деаутентифицировать (когда он жмёт выход)? Я просто использую Auth::logout(), но теперь ситуация такая, что если я так выхожу из аккаунта, и пытаюсь заново авторизоваться - он со второго раза проходит авторизацию (т.е. полагаю я ещё что то должен дописать к Auth::logout())
Обсуждают сегодня