Я не смог добраться до связанной страницы в верхнем ответе, поэтому я решил добавить свою.
Вам не нужно создавать какие-либо пользовательские контроллеры. Все, что вам нужно сделать, это следующее:
В вашем application.rb добавьте следующее в ваш класс приложений
config.to_prepare do
DeviseController.respond_to :html, :json
end
В config / initializer / devise.rb добавьте :json
к форматам. Эта строка закомментирована по умолчанию, поэтому вам нужно раскомментировать строку.
config.navigational_formats = ['*/*', :html, :json]
После этого вы можете отправить объект json в sign_in.json или что-либо еще, что вы настроили в своих маршрутах для входа.
{
"user": {
"email": "blah@blah.com",
"password": "blah"
}
}
И в случае успеха он вернет 201 созданный и вошедшего в систему пользователя как объект JSON. При ошибке он вернет 401 с сообщением JSON с указанием причины сбоя.
Пример:
{"error":"Invalid email or password."}
Вот хороший пример, если вы используете Backbone / Marionntte на переднем конце.
http://joshhuckabee.com/integrating-devise-backbonejs