设计处理重复登录请求

时间:2011-08-08 19:32:51

标签: ruby-on-rails ruby devise

我正在修复一个需要支持重复登录请求发送到服务器的应用程序(用于设计)。请求通过JSON发送。目前,如果我多次拨打以下电话:

curl -v -b cookie.file -c cookie.file -H "Content-Type: application/json" -X POST -d '{"user":{"username":"kevin","password":"password"}}' http://localhost:3000/users/sign_in.json

第一个结果为201状态代码,第二个结果为302重定向到HTML页面。我已经覆盖了Users::SessionsController中的create方法,但是自定义代码只在第一次POST时被调用(第二次没有任何反应)。有没有办法让第二个请求不执行重定向?以下是我到目前为止的情况:

class Users::SessionsController < Devise::SessionsController
  def create
    logger.info "Users::SessionController"
    super
  end
end

2 个答案:

答案 0 :(得分:2)

我结束了,因为我有同样的问题。非导航格式的登录不是幂等的,因为如果我已经过身份验证,我被重定向到html版本。

此问题已于9月29日以this commit.

解决

截至今天,您必须使用边缘设计来使其与您的应用程序一起使用。

# Gemfile
gem 'devise', git: 'git://github.com/plataformatec/devise.git'

答案 1 :(得分:0)

重写SessionsController并不像Devise中的其他东西那样无缝。我认为你要求的东西与this article非常相似。它可能不准确,但它涉及如何创建纯JSON登录环境。