9

Делаю проект с Flask, Gevent и веб-сокетом с использованием среды разработки фляг. Я использовал flask_login. ЗдесьFlask - Как получить идентификатор сеанса

  1. Как я могу получить уникальный идентификатор сеанса для каждого соединения?
  2. Я хочу сохранить SessionID в базе данных и удалить его, как только клиент отключится.
  3. Как получить полные активные соединения

    from flask_login import * 
    login_manager = LoginManager() 
    login_manager.setup_app(app) 
    
    @app.route("/", methods=["GET", "POST"]) 
    def login(): 
        login_user([username], remember):  
    
    @app.route("/logout") 
    @login_required 
    def logout(): 
        logout_user() 
    
+0

Вы хотите идентификатор сеанса для каждого _connection_ или каждый _logged в user_? –

+0

привет Бурхан, мне нужно для каждого зарегистрированного пользователя. Спасибо заранее, брат. – user2104391

+0

Как вы использовали 'flask_login'? Отправьте эту часть своего кода. –

ответ

17

Там нет идентификатора сессии.

Сессии в колбе - это просто обертки над куки. Что вы сохраните на нем, оно подписано в цифровой форме и отправлено клиенту в виде куки-файла. Когда вы делаете запрос, этот файл cookie отправляется на ваш сервер, а затем проверяется и преобразуется в объект Python.

AFAIK, Flask-Login сохраняет в сеансе идентификатор пользователя.

Чтобы получить общее количество активных соединений, вы можете:

  1. При входе генерирует уникальный идентификатор и сохранить его на сессии (flask.session['uid'] = uuid.uuid4(), например), а затем сохранить его на вашей базе данных.
  2. При выходе из системы удалите этот уникальный идентификатор из сеанса (del flask.session['uid']), а также из вашей базы данных.
  3. Получить количество активных сеансов используя ваш любимый метод (ORM/Raw SQL)
+2

Идентификатор сеанса - это содержимое файла cookie, и вы можете получить его из session.sid –

-1

Сеанс идентификатор находится в: flask.session [ '_ ID']

+0

'flask.session ['_ id']' используется Flask-Login для реализации [Session Protection] (https: // flask-login. readthedocs.io/en/latest/#session-protection). Сеансы «Стандартные» не имеют идентификатора SID. –

+0

Burhan использует flask_login ... – Matt

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