16

我正在使用 Flask 开发服务器环境使用 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() 
    
4

2 回答 2

27

没有会话 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)检索活动会话数
于 2013-03-03T15:51:33.487 回答
0

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

于 2017-04-19T20:41:14.173 回答