2015-06-08 13 views
18

Chcę ustawić wszystkie moje nagłówki HTTP odpowiedzi na coś takiego:Python, Kolba: Jak ustawić nagłówek odpowiedzi dla wszystkich odpowiedzi

response.headers["X-Frame-Options"] = "SAMEORIGIN" 

sprawdziłem this question, ale to tylko zmienia nagłówek dla jednego określonego kontroler. Chcę zmienić wszystkie moje nagłówki w funkcji "before_request", podobnie jak w poniższej logice. Jak mogę to zrobić?

@app.before_request 
def before_request(): 
    # response.headers["X-Frame-Options"] = "SAMEORIGIN" 

Odpowiedz

29

Ustaw nagłówek w @app.after_request() hook, w którym momencie masz obiekt odpowiedzi aby ustawić nagłówek na:

@app.after_request 
def apply_caching(response): 
    response.headers["X-Frame-Options"] = "SAMEORIGIN" 
    return response 

flask.request context jest nadal dostępna, gdy Hak ten biegnie, więc nadal można zmieniać odpowiedź oparta na żądaniu w tym momencie.

+1

tylko, aby dodać do tego. powinieneś użyć '@ app.before_request', aby uzyskać swój token nagłówka i sprawdzić jego ważność .. (nagłówek powinien zostać wysłany wraz z żądaniem w javascirpt), a następnie, jeśli chcesz zmienić nagłówki odpowiedzi, –

+0

@JohnRuddell On stock, Flask nie wymusza ani nie zapewnia weryfikacji tokenów. Zapewnienie, że powinieneś to zrobić, wcale nie jest prawdą. – kevr

+0

@kevr jeśli masz token, który zapewnia sprawdzanie poprawności do blokowania api (JWT na przykład z nagłówkiem tokena "Na okaziciela"), wtedy before_request jest sposobem na sprawdzenie poprawności tokena. To wszystko, co próbowałem powiedzieć. –

Powiązane problemy