【发布时间】:2012-02-11 08:28:09
【问题描述】:
我正在使用 Rails 3.1.0,我想以 proper 方式“要求”路由器 URL 中的参数字符串。也就是说,我有一个token 参数,必须在执行 HTTP POST 请求时进行检查,以便更新用户信息:
my_site_name/user/1?token=12345abcdr
我计划在router.rb 文件中添加一个约束,以便“要求”token。 可取吗?我应该这样进行吗?如果有,我该如何说明相关的路由器?
也许我可以声明/使用“命名路由器”以这种方式传递两个参数:
confirm_user_url(@user, token)
【问题讨论】:
-
你能澄清一下你所说的令牌是什么意思吗?这与 current_user 有何不同?它看起来类似于丢失密码的 md5 散列方案,但该方案存在是因为不能成为 current_user
-
为什么不需要设置 POST 令牌?如果在更新 users_controller 中的用户信息之前未设置令牌,您可以将用户重定向到另一个页面。但我不确定您要归档什么 - 可能是某种 csrf 预防方式吗?如果是,那么 rails 已经默认实现了,请参阅this link。
-
@timpone - 是的,即:用于丢失密码的 md5 散列方案。
-
@markus - 不,这不是预防 csrf 的一种方式。
标签: ruby-on-rails ruby ruby-on-rails-3 url routing