2013-06-11 1 views
1

Хорошо, поэтому я хочу проверить, находятся ли мои пользователи в сети или нет, я думаю, что хороший способ сделать это - использовать таблицу сеансов, которую предоставляет laravel. Я новичок, хотя, может быть, кто-нибудь в первую очередь объяснит мне, что означают эти данные.Может кто-нибудь объяснить таблицу сеансов laravel

sessions CREATE TABLE ( id VARCHAR (40) NOT NULL, last_activity INT (10) NOT NULL, data ТЕКСТА NOT NULL, ПЕРВИЧНЫЙ КЛЮЧ (id) );

last_activity - это временная метка unix, это ясно для меня.

Мой ID = lGBzJ0dIWiebrwjFlkQAE19NHuNHvsPRVS7e4CRO

Это равно значению печенья, но это не говорит, все, что многое для меня.

и мои данные = a: 3: {s: 5: ": new:"; a: 0: {} s: 5: ": old:"; a: 0: {} s: 10: " csrf_token "; s: 40:" XOZbMp8mrVUbu2Lk4c1cEdCoJUQIL3tSeHaztH1v ";}

Что означают эти 2 и как я могу использовать их для получения идентификатора пользователя из них в laravel?

ответ

1

Laravel не хранит ссылку на пользователя непосредственно в таблице сеансов. Для сеансовой системы, которая владеет сеансом, не имеет значения, и могут быть сеансы без присоединенного к ним пользователя (т. Е. До того, как кто-то вошел в систему).

Столбец данных PHP serialized, поэтому, если вы действительно хотите прочитать эти данные, вы можете.

Laravel разбивает данные сеанса на 3 категории: постоянные, старые данные вспышки, новые данные вспышки. Вот почему вы найдете два массива: «new:» и «: old:», пустые в вашем вставленном коде.


Почему бы вам не «последний видел» колонки на вашей таблице пользователей, прикоснуться к нему каждый раз, когда пользователь загружает страницу, а если < х минут, так как они в последний раз видели, то они могут быть рассмотрены "онлайн"?

+0

Спасибо, что это очень полезный ответ, по крайней мере, я знаю, с чем я работаю. Я видел, что у laravel есть last_activity в таблице сессий, и это, кажется, отлично работает для моей цели внедрения его в таблицу моих пользователей. Я могу только вернуть его в laravel/sessions/database.php. Вы случайно не знаете, где я могу найти код, который использует laravel для проверки последней активности? –

+0

Laravel не использует последнюю активность сеанса вне драйвера сеанса. Он используется для прокрутки (очистки) старых сеансов из таблицы сеансов, ничего другого. –

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