现在,我使用arduino以json格式向rails发送数据。但是如何获取authenticity_token并将其发送到rails呢?应该写在哪里?在json还是http报头中?格式应该是什么?
如果我加上
protect_from_forgery :exception => :create在控制器中,它工作fine.But,我不希望禁用CSRF保护。这是我的arduino代码:
client.println("POST /players.json HTTP/1.1");
client.println("Host: 192.168.1.3:3000");
client.println("User-Agent: Arduino/1.0");
client.println("csrf-param: authenticity_token");
client.println("csrf-token: V4gTh8yNdz9VMybUXkI6tHxzAHdfk3I+UoiXhxZWK0bkoh8iG5hVJ5sZOjzMAYLlwCwsXQQM102b1hF6TVyYJw==");
client.println("Connection: close");
client.println(lengthInfo);
client.println("Content-Type: application/json");
client.println();
root.printTo(client);Root.printTo(客户)只派儿子来。
我发现了一个类似的问题:
HTTP request to update rails model from arduino
@Okomikeruko你知道如何从Arduino发送一个真实性令牌吗?
发布于 2016-08-21 08:55:15
真实性令牌是对基于会话的身份验证策略的安全检查。它主要做的是检查填写webform的用户是否与登录的用户相同(并避免XSS攻击)。
然而,在我看来,这种身份验证策略并不是公共API的最佳选择。在您的情况下,我将执行以下操作之一:
请注意,您将在API查询中使用的控制器与您在web导航中使用的控制器不同。在我的项目中,我通常有一个文件夹"app/ controllers /v1“来存储API第一版中使用的控制器。
https://stackoverflow.com/questions/39062026
复制相似问题