2016-07-30 11 views
2

私はフラスコを使って、私のプロジェクトに小さな機能を実装しようとしていました。目的は認証されたユーザーからの要求である場合にのみクッキーを設定することです。フラスコ内のミドルウェア

これを行う方法は2つあります。

まず方法

@app.before_request 
def before_request(): 
    # set cookie if user is logged in 

第二の方法、このような何かを実装することで adding-a-simple-middleware-to-your-flask-application

誰かが二つの方法といつ、どこ方法を使用すべきとの主な相違点が何であるかを私に説明できます。

また、現在、「フラスコログイン」を使用してログインしているユーザーを追跡しています。 私は最初の方法を使用している場合は、誰かがCURRENT_USER

from flask.ext.login import current_user 

をインポートしてログインしますが、私は第二の方法を使用しながら、同じことをしようとした場合、CURRENT_USERはいつものように「なし」であるされていない場合、私は簡単に確認することができますアプリケーションコンテキストが正しくありません。

私は、2番目の実装を進めることにしたのかどうか、ユーザーがログインしているかどうかを確認する方法を知りたかったのです。

答えて

1

私があなたが言及した2番目の方法を使ったことはありません。私はそれがそれで完了できると確信していますが、それは非常に珍しいです。私はフラスコのより一般的な機能を使用することをお勧めします。あなたのコードの保守者のために:) 最初に述べた方法は問題ありません。

また、詳細なアクセス制限にはdecoratorsを使用できます。実際の応答オブジェクトを作成するときには、setting cookies in flaskを実行できることに注意してください。つまり、装飾された機能のクッキーの設定にはDeferred Request Callbacksを使用する必要があります。

+0

返信いただきありがとうございます。あなたが言及したDeferred Request Callbackを使用して必要な機能を実装しました – amarok