Jeton d'authentification avec des Rails et de Concevoir

Je suis la suite de cet excellent article de configuration de l'authentification partie de mes rails (3.2) de l'API:
http://blog.joshsoftware.com/2011/12/23/designing-rails-api-using-rabl-and-devise/

J'ai fait l'étape suivante:

Ajoutée imaginer Gemfile

-Permis de concevoir pour le modèle de l'utilisateur et a couru les migrations nécessaires

-Mon modèle utilisateur est

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable
  devise :token_authenticatable

  attr_accessible :email, :authentication_token, :password, :password_confirmation, :remember_me
end

ainsi que la token_authenticable dans la Base de données (via une migration).

-Sous-classé le RegistrationController avec:

class RegistrationsController < Devise::RegistrationsController
  def new
    super
  end

  def create
    resource = warden.authenticate!(:scope => resource_name, :recall => " {controller_path}#new")
    sign_in(resource_name, resource)
    current_user.reset_authentication_token!
    respond_with resource, :location => after_sign_in_path_for(resource)
  end

  def update
    super
  end
end

Routes.rb, j'ai:

devise_for :users, :controllers => {:registrations => "registrations"}

LA CRÉATION D'UN UTILISATEUR

J'aimerais la suite de la demande à un utilisateur de créer et d'envoyer la authentification_token:

curl -H "Accept: application/json" -H "Content-type: application/json"  -X POST -d '{"user":{"email":"[email protected]", "password":"pass"}}' 'http://localhost:3000/users.json

Ma compréhension est que la logique devrait aller dans le "créer" la méthode de l'enregistrement contrôleur (qui devrait créer l'utilisateur et le journal lui en même temps). Je pense que je devrais être à tort que le message que j'ai reçu en retour:

{"error":"You need to sign in or sign up before continuing."}

Quelle est la pièce manquante pour le nouvel utilisateur créé et enregistré ? N'est pas le POST pour les utilisateurs.json mappé à RegistrationController#créer ?

LA CONNEXION DE L'UTILISATEUR

Aussi, j'aimerais que la demande de connecter un utilisateur (le renvoyer son authentification_token une fois le login /mot de passe ont été cochée)

curl -H "Accept: application/json" -H "Content-type: application/json"  -X GET -d '{"user":{"email":"[email protected]","password":"pass"}}' 'http://localhost:3000/users.json

Je suppose que la logique devrait aller dans la "mise à jour" méthode de RegistrationController mais pas à 100% sûr à ce sujet. Une fois que la connexion est faite, je vais ajouter ensuite le jeton d'authentification pour protéger la création ou de l'avis de certains autres modèles.

Mise à JOUR

Quand j'question:

curl -H "Accept: application/json" -H "Content-type: application/json"  -X POST -d '{"user":{"email":"[email protected]", "password": "mypass", "phone":"1234567890"}}' 'http://localhost:3000/users.json'

J'ai eu le message suivant:

Started POST "/users.json" for 127.0.0.1 at 2012-03-11 20:50:05 +0100
Processing by RegistrationsController#create as JSON
Parameters: {"user"=>{"email"=>"[email protected]", , "password"=>"[FILTERED]", "phone"=>"1234567890"}, "registration"=>{"user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "phone"=>"1234567890"}, "action"=>"create", "controller"=>"registrations", "format"=>"json"}}
WARNING: Can't verify CSRF token authenticity
Completed 401 Unauthorized in 1ms

Des idées pourquoi l'utilisateur n'est pas créé et signé et pourquoi pas authentication_token est de retour ?

Si vous voulez qu'un utilisateur créé avant l'authentification, vous devez ajouter ce code. Concevoir de ne pas le faire.

OriginalL'auteur Luc | 2012-03-09