Flask-Login - 如何获取会话ID

时间:2013-03-01 11:00:34

标签: python-2.7 flask flask-sqlalchemy flask-login flask-extensions

使用烧瓶开发服务器环境,使用Flask,Gevent和Web套接字进行项目。我用了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() 
    

2 个答案:

答案 0 :(得分:22)

没有会话ID。

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

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

要获得总有效连接,您可以:

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

答案 1 :(得分:0)

会话ID位于:     flask.session [ '_ ID']