我现在用 arduino 向 rails 服务器 post 一段 json 来执行 create 动作。
现在的问题是如何发送 AuthenticityToken? AuthenticityToken 如何获取呢?可以自己定义吗?
放在 HTTP header 里面啊
#1 楼 @ch3n 格式是什么呢?
用 JWT 或者 OAuth2 吧
一般是放在 Authorization 里面
Rails 中 AuthenticityToken 是框架自动生成的,其目的是防止 CSRF。对于 ajax 请求,如果要予以支持,那么从页面的 meta 中提取 token,之后再设置 X-CSRF-Token 请求头就可以了(更具体的可以翻下 jquery-ujs 的源码)。楼主现在是在客户端发起 API 请求,那么可以在对应控制器中通过 protect_from_forgery unless: -> { request.format.json? },或者 skip_before_action :verify_authenticity_token 等方式适当绕过。
protect_from_forgery unless: -> { request.format.json? }
skip_before_action :verify_authenticity_token
谢谢大家