def create
organization = Organization.find(params[:organization][:node_id])
node = organization.nodes.build(nodes_params.except[:id])
if node.save
render json: node, status: :ok
else
render json: node, status: :bad_request
end
end
protect_from_forgery
skip_before_action :verify_authenticity_token, if: :json_request?
private
def json_request?
request.format.json?
end
按照对application_controller.rb
的注释,您需要将这一行protect_from_forgery::null_session
放在一起。
如果您只为从applicationcontroller
继承的所有API控制器多创建一个根控制器会更好。即
class Api::ApiController < ApplicationController
#TODO
protect_from_forgery with: :null_session
end
其他API的控制器
class Api::V1::AddressesController < Api::ApiController
#TODO
end
问题内容: 在我的rails应用程序中,我在向api的ajax发布中收到“警告:无法验证CSRF令牌的真实性”。 app / views / layouts / application.html.haml : ajax发布 : 问题答案: 假设您已使用Rails 标记设置了CSRF令牌,则请求的令牌将在meta标记中可用: 由于使用的是jQuery,因此可以通过为密钥调用以下值来将令牌传递给AJA
重复的步骤 登录 注销 从服务器登录并获取422无法验证CSRF令牌的真实性 Gems 设计3.5.2 设计令牌\u验证0.1.36 根据其他线程,解决方案是在注销时返回一个新的csrf令牌,然后在客户端的注销成功处理程序中,将XSRF-TOKEN的cookie设置为接收的令牌。我使用的代码如下。有人能告诉我为什么它不起作用吗?最后一个登录请求看起来使用了新的令牌,所以棱角分明的看起来像是从coo
问题内容: 我在CSRF令牌方面遇到问题。当我提交表单时,正在生成一个新的表单,但是我想我正在生成两个不同的令牌,这有点困惑。还有一个名为的令牌,因此我在开发人员工具中看到了两个不同的cookie(XSRF- TOKEN和_csrf),发布后它们没有变化。 我想要做的是为每个帖子请求生成一个新令牌,并检查它是否有效。我知道为了安全起见应该这样做,但是我坚持了下来。 漫长的一天,我是Express和
我正在做简单的身份验证(没有ajax或api),并得到一个CSRF真实性令牌的错误。检查下面的POST请求 根url指向,如下所示 Sign_in页面生成的html视图如下所示:
我刚刚开始在.NET中开发我的第一个REST API。由于它将是无状态的,我将使用令牌进行身份验证: 基本思想(System.Security.Cryptography): null 检查凭据是否有效(用户名,将哈希密码与db值进行比较) 如果为真,则加密数据对象 对生成的令牌使用HMAC,并将其存储到数据库 将令牌(不带HMAC)返回给用户(cookie/字符串) 对需要身份验证的方法的请求:
当且仅当用户在发出OAuth2请求时登录到LinkedIn时,它才起作用。 如果用户未登录,则会遇到错误。 我们的行动顺序: 成功获取新的访问令牌 使用访问令牌,发布到apiendpoint 之后,我们将收到一份401,内容如下: 有时,经过一段时间后,使用相同的访问令牌重试会得到200。有时不会。 如果用户在“401期间”登录LinkedIn,那么之前获取的访问令牌就会神奇地开始工作。 我不知道