通过JSON调用创建Devise用户

时间:2015-03-09 12:58:23

标签: ruby-on-rails ruby json devise

我正在学习如何使用rails制作和处理api调用。我正在使用Devise来处理我的用户身份验证/ sign_up等,但似乎在发布帖子请求时遇到了问题。

如果我要创建自己的注册控制器并从设计继承,允许用户sign_up?或者有没有办法通过设计控制器来处理json请求?

我看到的一个可以使过程更简单的例子是

class RegistrationsController < Devise::RegistrationsController
  respond_to :json
    def create
      super
    end
end

路线

constraints(subdomain: 'api') do
  devise_for :users, path: 'lnf', controllers: { registrations: "registrations" }
end

所以我的基本网址看起来像api.local.dev:3000

但是使用这种方法,这是否意味着我可以对以下网址发出curl请求?

 http://api.local.dev:3000/lnf/users/sign_up

1 个答案:

答案 0 :(得分:1)

您应该禁用CSRF保护并启用JSON响应类型:

class RegistrationsController < Devise::RegistrationsController

  skip_before_action :verify_authenticity_token

  respond_to :json

end  

然后只需使用参数和格式后缀(.json

调用POST请求
curl -X POST \
  --form "user[email]=user111@example.com" \
  --form "user[password]=password" \
  --form "user[password_confirmation]=password" \
  'http://localhost:3000/users.json'