首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >扩展Devise SessionsController以使用JSON进行身份验证

扩展Devise SessionsController以使用JSON进行身份验证
EN

Stack Overflow用户
提问于 2011-02-01 08:59:39
回答 7查看 30.8K关注 0票数 47

我正在尝试为iphone应用程序构建一个rails API。Devise适用于通过web界面登录,但我需要能够使用REST API创建和销毁会话,并且我希望使用JSON,而不必在会话控制器上执行POST,还必须解析HTML并处理重定向。

我想我可以这样做:

class Api::V1::SessionsController < Devise::SessionsController  
  def create
    super
  end  
  def destroy
    super
  end  
end

在config/routes.rb中,我添加了:

namespace :api do
  namespace :v1 do
    resources :sessions, :only => [:create, :destroy]
  end
end

rake routes显示路由设置正确:

   api_v1_sessions POST   /api/v1/sessions(.:format)     {:action=>"create", :controller=>"api/v1/sessions"}
    api_v1_session DELETE /api/v1/sessions/:id(.:format) {:action=>"destroy", :controller=>"api/v1/sessions"}

当我发布到/user/session时,一切都很正常。我得到了一些HTML和一个302。

现在,如果我发布到/api/v1/session,我会得到:

未知操作AbstractController::ActionNotFound

curl -v -H 'Content-Type: application/json' -H 'Accept: application/json'   -X POST http://localhost:3000/api/v1/sessions   -d "{'user' : { 'login' : 'test', 'password' : 'foobar'}}"
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4857855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档