用于设计登录导轨的自定义参数4

时间:2015-01-02 04:02:57

标签: ruby-on-rails-4 devise warden rails-api

我正在使用Rails 4构建API并使用Devise进行身份验证。我也覆盖用于登录用户的SessionsController。我有一个名为user的资源,并设置了相应的devise_for路由。 create操作如下:

def create
 self.resource = warden.authenticate(auth_options)
 ## Handle error / success json based on resource
 .......
end

由于资源为user,如果我使用数据参数执行curl,请执行以下操作:

{"user": {"email": "hello@example.org", "password": "password"} }

它有效。

我想知道的是如何自定义参数,以便devise/warden能够正确选择它。 即,我想发送以下请求数据,它应该进行身份验证:

{"email": "hello@example.org", "password": "password"}

1 个答案:

答案 0 :(得分:3)

您可以创建自己的控制器并使用以下内容包装用户参数:

# app/controllers/sessions_controller.rb
class SessionsController < Devise::RegistrationsController
  wrap_parameters :user
end 

# app/config/routes.rb
devise_for :users, controllers: sessions: 'sessions'

请参阅wrap_parametersconfiguring devise controllers