10
votes

Rails / Devise - Création de nouveaux utilisateurs via une demande JSON

Je voudrais faire un nouvel utilisateur de l'utilisateur via JSON, mais j'obtiens une erreur de jeton d'authenticité non valide.

Je voudrais ne pas activer le chèque de falsification de tous les contrôleurs. Toute suggestion sur la façon de remplacer l'enregistrementController pour le faire? P>

Voici mon code: P>

Routing Error
uninitialized constant Api::MobileRegistrationsController


0 commentaires

3 Réponses :


0
votes

Vous pouvez utiliser votre propre contrôleur qui ne dérive pas d'un contrôleur d'effet.

def UserSignupApiController < ApplicationController
  skip_before_filter :authenticate_user!
  respond_to :json
  def create
    @user = User.create(params[user])
    respond_with(@user)
  end
end


0 commentaires

4
votes

Je ne peux pas vous encourager de cette manière, car votre application sera vulnérable aux attaques du CSRF.

Une bonne ressource pour comprendre CSRF: Comprendre le jeton authenticité des rails

Vous devez plutôt inclure le authenticity_token dans votre demande de message. Ceci est discuté dans certaines questions à ce sujet, comme là-bas (lire toutes les réponses): Rails - InvalidAuthentiCityToken pour les demandes JSON / XML

L'idée:

  1. récupérez le jeton avec <% = form_authenticity_token%>

  2. Ajouter un authenticity_token Post Param à votre demande avec le jeton.

    Si vous passez le param par uri, n'oubliez pas de codé la valeur de jeton: xxx


0 commentaires

0
votes

Pour votre erreur

Erreur de routage ininitialisée constante API :: MobileEgistrationsController P> blockQuote>

Il indique que votre contrôleur n'est pas dans le bon dossier. Parce que vous utilisez P>

scope "/api" do
  resources :MobileRegistrations, :only => [:create] 
end


0 commentaires