1

認証されたユーザーにのみAngular JSアプリを提供するフラスコアプリがあります。

アプリを提供するビューのアクセス制御は、次のように Flask-Login パッケージの @login_required で実装されます。

# The app page is accessible only to authenticated users
@viewer_blueprint.route('/')
@login_required  # Limits access to authenticated users
def serve_app():           
    return send_from_directory(
        app.static_folder + '/app', "index.html")

ただし、ログアウトした後、認証されていないユーザーがこのビューを表示しようとすると、ログイン ページにリダイレクトされず、アプリのキャッシュ バージョンが表示されることに気付きました。

開発サーバーを実行している Google Chrome と Firefox でこの動作を確認しました。

認証されていないユーザーの場合にのみキャッシュなしを強制するにはどうすればよいですか? (ログインしたユーザーのキャッシュが必要な場合もあります。)(スタックオーバーフローに関する関連する質問/回答は、認証ステータスとは無関係にキャッシュ期間の無効化にのみ対処しているようです。これは、不必要な妥協だと思います。)

Firebug で XHR ログを調べると、ブラウザーが保護されたアプリ ビューに対して元の要求を行っていないことが示されているようです。キャッシュから直接ロードするだけです。

編集1:

1つの可能性は、フロントエンドアプリで認証を確認し、認証されていない場合はサインインページへのリダイレクトを強制することですが、余分なものを避けるためにこれを「自動的に」処理できるバックエンドソリューションに興味がありますフロントエンドで必要なケア (結局のところ、これは @login_required が道徳的に言えば、そうすべきだと主張している / 主張していることではないでしょうか?)。

4

0 に答える 0