Ü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.