Ruby on rails 4 余烬简单身份验证可以';即使X-CSRF-token在标头中,也不能验证CSRF令牌的真实性
我知道有很多关于这个话题的问题,但我还没有发现是什么导致了我的问题 问题 我在我的rails服务器上收到消息,无法验证CSRF令牌的真实性,即使我可以在Chrome上看到标头存在。(如图所示) 我的设置Ruby on rails 4 余烬简单身份验证可以';即使X-CSRF-token在标头中,也不能验证CSRF令牌的真实性,ruby-on-rails-4,ember.js,devise,ember-simple-auth,Ruby On Rails 4,Ember.js,Devise,Ember Simple Auth,我知道有很多关于这个话题的问题,但我还没有发现是什么导致了我的问题 问题 我在我的rails服务器上收到消息,无法验证CSRF令牌的真实性,即使我可以在Chrome上看到标头存在。(如图所示) 我的设置 Rails 4.2作为后端RESTful API 前端的Ember.js 1.11.3 设计 余烬简单授权 我遵循了通过令牌进行身份验证的方法。除了一个例外,我没有将下一个代码放入ApplicationController中,而是定义了一个ApiController类,试图将我的API逻辑
- Rails 4.2作为后端RESTful API
- 前端的Ember.js 1.11.3
- 设计
- 余烬简单授权
ApplicationController
中,而是定义了一个ApiController
类,试图将我的API逻辑与站点的其余部分分开
class ApiController < ActionController::Base
protect_from_forgery with: :null_session
before_action :authenticate_user_from_token!
# I had to comment this line out in order to
# make the authentication work
# before_filter :authenticate_user!
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(
:username, :first_name, :last_name, :email, :password, :password_confirmation
) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(
:username, :first_name, :last_name, :email, :password, :current_password
) }
end
private
def authenticate_user_from_token!
authenticate_with_http_token do |token, options|
user_email = options[:email].presence
user = user_email && User.find_by_email(user_email)
if user && Devise.secure_compare(user.authentication_token, token)
sign_in user, store: false
end
end
end
end
类ApiController
请注意,我必须在\u filter:authenticate\u user之前注释代码>输出以使身份验证生效。通过这条线,我只收到401个未经授权的请求
我希望有人能给我一些见解:
-为什么即使X-CSRF-token在标头中,我也无法验证CSRF令牌的真实性
-为什么保留示例说明中我评论的行很重要/必要?
提前谢谢