我在开发一个新的Rails4应用程序(在Ruby 2.0.0-P0上)时遇到了一些真实性令牌问题。
在编写响应json的控制器时(使用respond_to
类方法),我使用了create
操作,当我试图使用curl
创建记录时,我开始获取ActionController::InvalidAuthenticityToken
异常。
我确保设置了-h“content-type:application/json”
,并使用-d“
设置了数据,但仍然没有成功。
编辑:我只是尝试在一个新的Rails4应用程序中使用脚手架创建一个新记录,而没有做任何更改,我遇到了同样的问题,所以我想这不是我做的事情。
protect_from_forgery with: :exception
protect_from_forgery with: :null_session
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
# This is the method that defines the application behavior when a request is found to be unverified.
# By default, \Rails resets the session when it finds an unverified request.
def handle_unverified_request
reset_session
end
def handle_unverified_request
forgery_protection_strategy.new(self).handle_unverified_request
end
def handle_unverified_request
raise ActionController::InvalidAuthenticityToken
end
问题内容: Rails似乎忽略了AJAX请求的真实性令牌。例如,我故意更改了AJAX调用以使用无效的令牌对其进行测试,并且请求似乎正常进行。 该应用程序具有使用会话cookie存储的默认配置,并在ApplicationController中具有了protect_from_forgery调用。 有什么想法我可能会错过的吗? 问题答案: 编辑>>我也在博客文章中发布了此答案:http: //zadas
问题内容: 在我的rails应用程序中,我在向api的ajax发布中收到“警告:无法验证CSRF令牌的真实性”。 app / views / layouts / application.html.haml : ajax发布 : 问题答案: 假设您已使用Rails 标记设置了CSRF令牌,则请求的令牌将在meta标记中可用: 由于使用的是jQuery,因此可以通过为密钥调用以下值来将令牌传递给AJA
我的rails应用程序订阅了一个外部系统POST通知(名为Orion context broker)。我管理发送json数据和处理响应(Ruby->Orion)。
重复的步骤 登录 注销 从服务器登录并获取422无法验证CSRF令牌的真实性 Gems 设计3.5.2 设计令牌\u验证0.1.36 根据其他线程,解决方案是在注销时返回一个新的csrf令牌,然后在客户端的注销成功处理程序中,将XSRF-TOKEN的cookie设置为接收的令牌。我使用的代码如下。有人能告诉我为什么它不起作用吗?最后一个登录请求看起来使用了新的令牌,所以棱角分明的看起来像是从coo
我可以使用内置函数来检查这一点。 我也可以在使用条件时使用这些真实性值。例如: 这不适用于运算符,但: 有人能解释为什么的行为似乎与条件不同吗?