背景:我正在玩一个 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,看看我是否在存储一些东西。在这两种情况下,我的应用程序在提交日期后继续显示相同的消息:“电子邮件不能为空”,然后“密码不能为空”
任何指示或建议?我有人需要更多信息,我很乐意提供。