0

背景:我正在玩一个 Jquery Mobile 应用程序和一个 Rails 后端服务器。我通过 POST Ajax 调用从应用程序创建用户。就移动应用程序的所有目的而言,后端只是一个 API。

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

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

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,看看我是否在存储一些东西。在这两种情况下,我的应用程序在提交日期后继续显示相同的消息:“电子邮件不能为空”,然后“密码不能为空”

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

4

0 回答 0