无法验证CSRF令牌的真实性和电子邮件不能为空

时间:2013-09-28 00:44:24

标签: json jquery-mobile ruby-on-rails-4 csrf

上下文: 我正在玩Jquery Mobile应用程序和Rails后端服务器。我通过POST Ajax调用从应用程序创建用户。对于移动应用程序而言,后端只是一个API。

我整晚都在读这个CSRF令牌真实性问题,但找不到如何杀死它。我在Rails 4和Devise 3.1(使用token_authenticatable模块)

当我尝试通过应用程序保存用户时,这是登录控制台

Started POST "/users.json" for IP at 2013-09-28 00:05:17 +0200
Processing by RegistrationsController#create as JSON
  Parameters: {"user"=>{"username"=>"seba", "email"=>"mail@gmail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}}
Can't verify CSRF token authenticity
user: 
   (0.1ms)  begin transaction
   (0.1ms)  rollback transaction
Completed 422 Unprocessable Entity in 9ms (Views: 0.3ms | ActiveRecord: 0.2ms)

我在这个网站上看到,如果我放下以下行

 skip_before_filter  :verify_authenticity_token

在我的自定义注册控制器中,验证错误将消失。确实如此,但现在有一个警告:

    Started POST "/users.json" for IP at 2013-09-28 02:38:16 +0200
DEPRECATION WARNING: devise :token_authenticatable is deprecated. Please check Devise 3.1 release notes for more information on how to upgrade. (called from <class:User> at /home/seba/repos/elsapo/app/models/user.rb:4)
Processing by RegistrationsController#create as JSON
  Parameters: {"user"=>{"username"=>"seba", "email"=>"mail@gmail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}}
user: 
   (0.1ms)  begin transaction
   (0.2ms)  rollback transaction
Completed 422 Unprocessable Entity in 65ms (Views: 0.4ms | ActiveRecord: 1.5ms)

user:这一行是logger.debug,看看我是否存储了一些东西。 在这两种情况下,我的应用程序在提交日期后继续显示相同的消息:“电子邮件不能为空”,然后“密码不能为空”

任何指针或建议?我需要更多信息,我很乐意提供。

0 个答案:

没有答案