Flask-Login - 如何获取会话ID

use*_*391 15 flask python-2.7 flask-sqlalchemy flask-login flask-extensions

我正在使用烧瓶开发服务器环境与Flask,Gevent和web socket进行项目.我用过flask_login.这里

  1. 如何获得每个连接的唯一会话ID?
  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() 
    
    Run Code Online (Sandbox Code Playgroud)

gio*_*ioi 22

没有会话ID.

Flask中的会话只是对cookie的包装.你节省了什么,它被数字签名并作为cookie发送给客户端.当您发出请求时,该cookie将被发送到您的服务器,然后在Python对象中进行验证和转换.

AFAIK,Flask-Login在会话中保存用户ID.

要获得总活动连接,您可以:

  1. 登录时,生成唯一的ID并将其保存在会话中(flask.session['uid'] = uuid.uuid4()例如),然后将其保存在数据库中.
  2. 在注销时,从session(del flask.session['uid'])以及数据库中删除该唯一ID .
  3. 使用您喜欢的方法(ORM/Raw SQL)检索活动会话的数量

  • 会话ID是cookie的内容,您可以从session.sid获取它 (2认同)