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