web-dev-qa-db-fra.com

Désactiver le jeton CSRF dans Rails 3

j'ai une application Rails qui sert certains apis à une application iphone. Je veux pouvoir publier simplement sur une ressource sans se préoccuper d'obtenir le bon jeton de csrf. J'ai essayé une méthode que je vois ici dans stackoverflow mais il semble qu'ils ne fonctionnent plus sur Rails 3. Merci de m'aider.

97
Simone D'Amico

Dans le contrôleur où vous voulez désactiver CSRF, vérifiez:

skip_before_action :verify_authenticity_token

Ou pour le désactiver pour tout sauf quelques méthodes:

skip_before_action :verify_authenticity_token, :except => [:update, :create]

Ou pour désactiver uniquement les méthodes spécifiées:

skip_before_action :verify_authenticity_token, :only => [:custom_auth, :update]

Plus d'infos: Protection RoG Request Forgery

166
Mike Lewis

Dans Rails3, vous pouvez désactiver le jeton csrf de votre contrôleur pour certaines méthodes:

protect_from_forgery :except => :create 
105
Markus Proske

Avec Rails 4, vous avez maintenant la possibilité d'écrire en skip_before_action au lieu de skip_before_filter.

# Works in Rails 4 and 5
skip_before_action :verify_authenticity_token

ou

# Works in Rails 3 and 4 (deprecated in Rails 4 and removed in Rails 5)
skip_before_filter :verify_authenticity_token
31
jason328