Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Web
  • » Flask, не работает принудительное завершение сеанса [RSS Feed]

#1 Окт. 2, 2015 16:42:21

Radist_101
Зарегистрирован: 2013-07-15
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask, не работает принудительное завершение сеанса

Доброго времени суток! Как принудительно сделать logout для пользователя в flask если этот же пользователь авторизуется через другое устройство? Используется библиотека flask-login версия 0.3.1.
Указываю в экземпляре LoginManager атрибут session_protection = ‘strong’
Сессию храню в редисе, используются такой сниппет flask.pocoo.org/snippets/75

Офлайн

#2 Окт. 2, 2015 20:02:54

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Flask, не работает принудительное завершение сеанса

Возьмите проще. В БД добавьте поле. И все
И мне все равно не до конца понятно, зачем так делать?

Отредактировано 4kpt_III (Окт. 2, 2015 20:06:22)

Офлайн

#3 Окт. 3, 2015 07:11:56

Radist_101
Зарегистрирован: 2013-07-15
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask, не работает принудительное завершение сеанса

4kpt_III
И мне все равно не до конца понятно, зачем так делать?

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

Офлайн

#4 Окт. 3, 2015 08:10:55

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Flask, не работает принудительное завершение сеанса

Radist_101
мне надо отчитывать сколько времени пользователь пробыл в системе
А как вы собираетесь это время получать?



Офлайн

#5 Окт. 3, 2015 08:20:41

Radist_101
Зарегистрирован: 2013-07-15
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask, не работает принудительное завершение сеанса

FishHook
А как вы собираетесь это время получать?

При авторизации в БД сохраняется время входа в систему в таблице User, а при завершении сеанса у нас есть время выхода и эти два значения записываются в таблицу о смене пользователя

Офлайн

#6 Окт. 3, 2015 09:07:31

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Flask, не работает принудительное завершение сеанса

Ну а если пользователь просто взял и закрыл браузер, как вы будете определять время завершения сеанса?



Офлайн

#7 Окт. 3, 2015 09:10:48

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Flask, не работает принудительное завершение сеанса

А при чем здесь все равно redis я так и не понял. Задача у этого сниппета совершенно иная… Ну и с Permanent не забыли поиграться?

Офлайн

#8 Окт. 3, 2015 18:15:32

Radist_101
Зарегистрирован: 2013-07-15
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask, не работает принудительное завершение сеанса

4kpt_III
А при чем здесь все равно redis я так и не понял

Ну хотел сессию пользователя в редисе хранить. KV хранилище для этого вроде удобны

Офлайн

#9 Окт. 4, 2015 06:14:18

Radist_101
Зарегистрирован: 2013-07-15
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask, не работает принудительное завершение сеанса

FishHook
Ну а если пользователь просто взял и закрыл браузер, как вы будете определять время завершения сеанса?

Так если пользователь закрыл браузер, то сессия вроде не завершается

Офлайн

#10 Окт. 4, 2015 10:09:20

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Flask, не работает принудительное завершение сеанса

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



Отредактировано FishHook (Окт. 4, 2015 10:15:19)

Офлайн

  • Начало
  • » Web
  • » Flask, не работает принудительное завершение сеанса[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version