скажем, три пользователя в настоящее время регистрируются с трех устройств. один из пользователей (администратор) хочет принудительно выйти из системы user2, как это можно добиться в laravel 5.2 ??
Структура таблицы базы данных :: users -> id|name|email|password|remember_token
Обновить сценарий ::
user1 --> logged from device 1 [user1 is admin type and has all kind of permission] user2 --> logged from device 2 [normal user] user3 --> logged from device 3 [normal user]
в настоящее время все пользователи регистрируются одновременно. user1 внести некоторые изменения для пользователя2 и захотеть повторно войти в систему user2, нет способа сказать user2, пожалуйста, заново зарегистрируйтесь, за исключением того, что он выйдет из системы пользователем1. как пользователь user1 может вывести log2 (удаленный пользователь)?
Данный анализ решений:
$userIdToLogout = 2; // it is user2 if (!is_null(Auth::user()) { if (Auth::user()->id == $userIdToLogout) { Auth::logout(); } } - Auth::user() will return user1 information NOT user2 - So if (Auth::user()->id == $userIdToLogout) condition will never be true
из$userIdToLogout = 2; // it is user2 if (!is_null(Auth::user()) { if (Auth::user()->id == $userIdToLogout) { Auth::logout(); } } - Auth::user() will return user1 information NOT user2 - So if (Auth::user()->id == $userIdToLogout) condition will never be true
мой анализ неправильный ??
Чтобы выйти из системы, вы должны использовать Auth::logout()
. Это очистит данные авторизации из сеанса пользователя. Итак, просто проверьте идентификатор пользователя и запустите Auth::logout()
если это пользователь, которого вы хотите.
https://laravel.com/docs/5.1/authentication#authenticating-users
Обновить
Вы можете проверить правильного пользователя, используя простую конструкцию:
$userIdToLogout = 2; if (!is_null(Auth::user()) { if (Auth::user()->id == $userIdToLogout) { Auth::logout(); } }
из$userIdToLogout = 2; if (!is_null(Auth::user()) { if (Auth::user()->id == $userIdToLogout) { Auth::logout(); } }
Альтернативное решение для проверки пользователя из @Bogdan:
if (Auth::id() == $userId) { Auth::logout(); }
изif (Auth::id() == $userId) { Auth::logout(); }