特定のページだけcsrf保護を除外したいときがある。たとえば、lineボットを作るとき、lineからwebhookを受け取るページにcsrf保護を有効にしていると、lineからcsrfトークンを投げてもらうことはできないので、400エラーで通信不可となるため、csrf保護を無効にしたい。
一部ページのみcsrf保護を無効にするにはをルーティングを指定している場所に以下のデコレーターを追記する。
@csrf.exempt
完全なスニペットは次のとおり。
app.py
# CSRFProtectクラスをインスタンス化
csrf = CSRFProtect()
wiews.py
from app import csrf
@csrf.exempt
@blueprint.route("/", methods=["GET", "POST"])
def callback():
return "blueprint page"