16

フラスコ開発サーバー環境を使用して、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() 
    
4

2 に答える 2

27

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

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

私の知る限り、Flask-Login はセッションにユーザー ID を保存します。

アクティブな接続の合計を取得するには、次のことができます。

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