web-dev-qa-db-ja.com

Flask-Login-セッションIDを取得する方法

flask開発サーバー環境を使用して、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() 
    
16
user2104391

セッションIDはありません。

Flaskのセッションは、単にCookieのラッパーです。保存したものは、デジタル署名され、Cookieとしてクライアントに送信されます。リクエストすると、そのCookieがサーバーに送信され、 Pythonオブジェクトで検証および変換されます。

AFAIK、Flask-LoginはセッションにユーザーIDを保存します。

アクティブな接続の合計を取得するには、次の方法があります。

  1. ログイン時に、一意のIDを生成してセッション(たとえば、flask.session['uid'] = uuid.uuid4())に保存してから、データベースに保存します。
  2. ログアウト時に、その一意のIDをセッションから削除します(del flask.session['uid'])そしてあなたのデータベースから。
  3. お気に入りの方法(ORM/Raw SQL)を使用してアクティブなセッションの数を取得する
22
gioi

セッションIDは、次の場所にあります。フラスコ。セッション['_id']

0
Matt