Überschreiben Sie die Strategie "protect_from_forgery" in einem Controller

Ich möchte eine Rails-App mit zwei verschiedenen Strategien zum Schutz vor Fälschungen erstellen: eine für die Webanwendung und eine für die API.

In meinem Anwendungscontroller habe ich folgende Codezeile:protect_from_forgery with: :exception Um CSRF-Angriffe zu verhindern, funktioniert es einwandfrei.

In meinem API-Namespace habe ich einen api_controller erstellt, der von meinem Anwendungscontroller erbt und die übergeordnete Klasse aller anderen Controller im API-Namespace ist. Den obigen Code habe ich wie folgt geändert:protect_from_forgery with: :null_session.

Leider ist beim Versuch, eine POST-Anfrage zu stellen, ein Fehler aufgetreten: "CSRF-Token-Authentizität kann nicht überprüft werden".

Ich möchte die verify_authenticity_token-Methode in meinen API-Controllern nicht überspringen. Ich möchte nur zwei unterschiedliche Strategien in meiner App haben. Wie kann ich die in meinem Anwendungscontroller definierte protect_from_forgery-Strategie überschreiben?

Bearbeiten: Ok, also habe ich irgendwann getan, was ich gar nicht wollte: Die Vererbung meines api_controllers ändern: Erbt jetzt von ActionController :: Base und nicht mehr von meinem Anwendungscontroller. Es funktioniert jetzt aber:

Meine Frage wird nicht beantwortet, d. H. Die Strategie zum Schutz vor Fälschungen wird außer Kraft gesetzt.Es ist nicht TROCKEN, da ich kopieren muss, was vorher in meinem application_controller war.

Wenn also jemand eine echte Möglichkeit hat, diese Methode zu überschreiben, würde ich es begrüßen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage