Найти - Пользователи
Полная версия: Flask, не работает принудительное завершение сеанса
Начало » Web » Flask, не работает принудительное завершение сеанса
1
Radist_101
Доброго времени суток! Как принудительно сделать logout для пользователя в flask если этот же пользователь авторизуется через другое устройство? Используется библиотека flask-login версия 0.3.1.
Указываю в экземпляре LoginManager атрибут session_protection = ‘strong’
Сессию храню в редисе, используются такой сниппет flask.pocoo.org/snippets/75
4kpt_III
Возьмите проще. В БД добавьте поле. И все
И мне все равно не до конца понятно, зачем так делать?
Radist_101
4kpt_III
И мне все равно не до конца понятно, зачем так делать?

Ну мне надо отчитывать сколько времени пользователь пробыл в системе и другую статистику собирать, а если он заходит с разных устройств то каша начинается, а flask как раз для таких случаев настройку имеет session_protection = ‘strong’
FishHook
Radist_101
мне надо отчитывать сколько времени пользователь пробыл в системе
А как вы собираетесь это время получать?
Radist_101
FishHook
А как вы собираетесь это время получать?

При авторизации в БД сохраняется время входа в систему в таблице User, а при завершении сеанса у нас есть время выхода и эти два значения записываются в таблицу о смене пользователя
FishHook
Ну а если пользователь просто взял и закрыл браузер, как вы будете определять время завершения сеанса?
4kpt_III
А при чем здесь все равно redis я так и не понял. Задача у этого сниппета совершенно иная… Ну и с Permanent не забыли поиграться?
Radist_101
4kpt_III
А при чем здесь все равно redis я так и не понял

Ну хотел сессию пользователя в редисе хранить. KV хранилище для этого вроде удобны
Radist_101
FishHook
Ну а если пользователь просто взял и закрыл браузер, как вы будете определять время завершения сеанса?

Так если пользователь закрыл браузер, то сессия вроде не завершается
FishHook
Radist_101
Так если пользователь закрыл браузер, то сессия вроде не завершается
У пользователя завершается если кука имеет срок действия на время работы браузера. Сервер об этом не узнает, пока пользователь снова не попробует зайти на тот же сайт и браузер не отправит запрос. Понятно, что всё это время вы будете думать, что пользователь на сайте.
https://ru.wikipedia.org/wiki/HTTP_cookie#.D0.A3.D1.81.D0.BB.D0.BE.D0.B2.D0.B8.D1.8F_.D0.B8.D1.81.D1.82.D0.B5.D1.87.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.80.D0.BE.D0.BA.D0.B0_.D1.85.D1.80.D0.B0.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB