no pude conseguir a la página enlazada en la respuesta principal, así que pensé en agregar la mía. No necesita crear ningún controlador personalizado. Todo lo que necesita hacer es la siguiente:
En su application.rb añadir lo siguiente en su clase de aplicación
config.to_prepare do
DeviseController.respond_to :html, :json
end
En config/inicializadores/devise.rb añadir :json
a los formatos. Esta línea está comentada por defecto, por lo que tendrá que descomentar la línea.
config.navigational_formats = ['*/*', :html, :json]
Después de esto, se puede enviar un objeto JSON a sign_in.json o lo que sea que haya configurado en sus rutas para el inicio de sesión.
{
"user": {
"email": "[email protected]",
"password": "blah"
}
}
Y en caso de éxito devolverá 201 creados, y el usuario conectado como un objeto JSON. En caso de error, devolverá 401 con un mensaje JSON que indica el motivo de la falla.
Ejemplo:
{"error":"Invalid email or password."}
Aquí es un buen ejemplo si está utilizando Backbone/Marionntte en la parte delantera.
http://joshhuckabee.com/integrating-devise-backbonejs
Gracias mucho! Eso ayudó. – Satyam
Para el registro, terminé teniendo un montón de problemas con Devise + JSON. Recomiendo usar Rails 3.1 has_secure_password y agregar sus propias características personalizadas. –
¡Malditas! No podemos encontrar esa página. – tambykojak