有关rails Web服务和身份验证的问题

时间:2009-12-17 18:33:21

标签: ruby-on-rails web-services

我正在做的是rails web服务API,它允许用户在访问任何网站时创建旅行日志,使用firefox插件。对于这个要求,我需要2件事。

  1. skip_before_filter:特定控制器中的verify_authenticity_token(因为我让用户通过API而不是表单创建它,所以我禁用它。)
  2. 用户必须在每次请求时提供用户名和密码(例如curl -u username:pass -d“...”http://localhost:3000/logs)。
  3. 我想问的是

    • 我可以让我更轻松 firefox插件请求用户登录 然后使用cookies,所以不需要发送 每次用户名密码 请求。
    • skip_before_filter:verify_authenticity_token对此有害吗或必要的事情吗?

    由于

1 个答案:

答案 0 :(得分:0)

当Rails呈现表单时,它包含一个带有长字符串的隐藏字段(真实性标记)。 verify_authenticity_token过滤器确保用户提交了服务器实际呈现的表单(而不是像黑客那样伪造POST请求)。如果你使用cookies和会话,你应该read about how this works并尝试自定义它以使用你的插件。

但是,为什么不使用HTTP basic authentication呢?它比在每个页面视图上发送cookie要快一些,并且应该更容易设置。正如您所说,您可以使用插件提示输入用户名/密码,然后在每次请求时发送它们。

但是,如果您需要在会话中存储用户数据,则必须使用cookie。