2014-12-09 3 views
2

Я говорю о простом веб-сайте laravel 4.2 с системой аутентификации.Laravel: проверьте, зарегистрирован ли еще один пользователь в

Я пользователь A (суперпользователь), и я хочу, чтобы пользователь B или/и пользователь C (и все остальные пользователи) вошли в систему. Есть ли встроенная функция (что-то с классом Auth) в сделай это ?

+0

Вы можете проверить, как давно другие пользователи вошли в систему, но невозможно быть уверенным, что пользователь находится в сети. – Jerodev

ответ

1

Вы не можете точно сказать, зарегистрирован ли пользовательский B/C. Но вы можете догадаться, если пользователь вошел в систему. Если вы помните последнее действие пользователя B/C, и вы знаете тайм-аут до тех пор, пока пользователь автоматически выйдет из системы, это даст вам оценочное значение, если пользователь все еще зарегистрирован или нет.

Добавить миграцию для таблицы пользователей и добавить новое поле в таблицу

$table->timestamp('last_activity')->nullable(); 

Добавить перед фильтром

App::before(function ($request) { 
    if (Auth::user()) { 
     $user = Auth::user(); 
     $now = new DateTime(); 
     $user->last_activity = $now->getTimestamp(); 
     $user->save(); 
    } 
}); 

Теперь вы можете проверить, когда последнее действие пользователя B/C было, и если это будет в пределах времени автоматического выхода из системы, возможно, что пользователь все еще выполнил вход в систему. Если нет, пользователь определенно вышел из системы.

В случае если вы хотите вести регистрацию пользователей, существует пакет Regulus343/ActivityLog.

Смежные вопросы