#laravel #authentication #session
#laravel #аутентификация #сеанс
Вопрос:
Есть ли какой-либо способ проверить, авторизован ли конкретный пользователь в веб-приложении? Я искал, и все результаты есть Auth::check()
, но это не то, что мне нужно. Мне нужно что-то вроде Auth::check($user_id_to_check)
. На самом деле неизвестно, возможно ли это вообще.
В основном это делается для вывода изображения с зеленым или красным кружком в аватаре пользователя системы комментариев.
Спасибо за любой совет.
Ответ №1:
Ответ №2:
Если вам нужно проверить конкретный идентификатор с помощью lo&&ed in user_id
, вы можете сделать что-то вроде этого
auth()-&&t;id() == $user_id_to_check
auth()
является вспомогательным средством для получения авторизации пользователя и связанной с ней информации.
Для получения дополнительной информации о помощнике по аутентификации
Ответ №3:
Что он, безусловно, пытается здесь сделать, так это показать всем пользователям, подключен пользователь к сети или нет. Для этого вы должны реализовать другую логику. И Auth::check()
не будет работать, поскольку он проверяет только аутентификацию пользователя, отправляющего запрос.
Если вы помните последнее действие пользователя и знаете время ожидания до автоматического выхода пользователя из системы, это даст вам оценочное значение, все еще входит пользователь в систему или нет.
Добавьте миграцию для вашей таблицы users и добавьте новое поле в вашу таблицу
$table-&&t;timestamp('last_activity')-&&t;nullable();
Вам нужно выполнить проверку где-нибудь в вашем приложении и обновить эту временную метку.
if (Auth::check()) {
Auth::user()-&&t;update([last_activity =&&t; now()]);
}
Теперь вы можете проверить, когда было последнее действие пользователя, и если это происходит в течение времени автоматического выхода из системы, возможно, что пользователь все еще вошел в систему. Если нет, то пользователь определенно вышел из системы.