Flask-Login - Как получить идентификатор сеанса

Я делаю проект с Flask, Gevent и веб-сокетом, используя среду сервера разработки flask. Я использовал flask_login. Здесь

  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() 
    

person user2104391    schedule 01.03.2013    source источник
comment
Вам нужен идентификатор сеанса для каждого соединения или каждого пользователя, вошедшего в систему?   -  person Burhan Khalid    schedule 01.03.2013
comment
привет Бурхан, мне нужно для каждого вошедшего в систему пользователя. Заранее спасибо брат.   -  person user2104391    schedule 01.03.2013
comment
Как вы использовали flask_login? Опубликуйте эту часть кода.   -  person Burhan Khalid    schedule 01.03.2013
comment
Добавьте код в вопрос, а не в комментарий, пожалуйста.   -  person favoretti    schedule 01.03.2013


Ответы (2)


Идентификатор сеанса отсутствует.

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

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

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

  1. При входе в систему создайте уникальный идентификатор и сохраните его в сеансе (например, flask.session['uid'] = uuid.uuid4()), а затем сохраните его в своей базе данных.
  2. При выходе из системы удалите этот уникальный идентификатор из сеанса (del flask.session['uid']), а также из своей базы данных.
  3. Получите количество активных сеансов, используя ваш любимый метод (ORM/Raw SQL)
person gioi    schedule 03.03.2013
comment
Идентификатор сеанса — это содержимое файла cookie, и вы можете получить его из session.sid. - person Chris Koston; 06.07.2017

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

person Matt    schedule 19.04.2017
comment
flask.session['_id'] используется Flask-Login для реализации защиты сеанса. Стандартные сеансы Flask не имеют SID. - person turdus-merula; 28.08.2017