12

フラスコアプリケーションを構築していますが、ユーザーが認証されている場合にのみ、いくつかの静的ファイルを提供したいと考えています。これは非常にトラフィックの少ないアプリケーションです(内部使用のみ)。どうすればいいですか?私が考えていたのは、serve_static()を使用し、それを認証チェックの背後に置くことですが、これは、flaskがすでにコンテンツを提供している静的ディレクトリを使用します。

4

1 に答える 1

16

メソッドをサブクラス化flask.Flaskしてオーバーライドするだけsend_static_fileです。

class SecuredStaticFlask(Flask):
    def send_static_file(self, filename):
        # Get user from session
        if user.is_authenticated():
            return super(SecuredStaticFlask, self).send_static_file(filename)
        else:
            abort(403) 
            # Or 401 (or 404), whatever is most appropriate for your situation

以下の定義send_static_fileと以下も参照してください。

于 2012-08-25T01:36:38.373 に答える