我正在修复一个需要支持重复登录请求发送到服务器的应用程序(用于设计)。请求通过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
答案 0 :(得分:2)
我结束了,因为我有同样的问题。非导航格式的登录不是幂等的,因为如果我已经过身份验证,我被重定向到html版本。
此问题已于9月29日以this commit.
解决截至今天,您必须使用边缘设计来使其与您的应用程序一起使用。
# Gemfile
gem 'devise', git: 'git://github.com/plataformatec/devise.git'
答案 1 :(得分:0)
重写SessionsController并不像Devise中的其他东西那样无缝。我认为你要求的东西与this article非常相似。它可能不准确,但它涉及如何创建纯JSON登录环境。