2

我希望能够允许用户使用 AJAX 对资源进行投票,但是,我不确定如何在资源控制器中获取 current_user 的 id。

我四处搜索,我已经阅读了很多将 user_id 保存为隐藏字段的建议,然后使用它来发送 AJAX 请求,但这不会让我面临安全漏洞吗?任何恶意用户都可以更改 user_id,然后作为他选择的随机用户投票。

获取 AJAX 请求的 current_user id 的标准方法是什么?

谢谢

4

1 回答 1

5

如果整个事情都在身份验证之后,您不需要将 user_id 存储在视图中,或者花费任何精力来传递它。只需像往常一样在控制器中访问current_user(或)。current_user.id

“整个事情都在身份验证之后”我的意思是具有投票接口的视图的控制器,以及 AJAX 请求的目的地的控制器都应该有before_filter :authenticate_user!,或者从一个类派生。如果是这种情况,devise 将以与其他所有经过身份验证的请求相同的方式识别用户。请求是 JSON 无关紧要,如果您还没有类似的东西,您可能需要调整您的未经授权的行为以将 javascript 重定向到您的登录名。

于 2013-01-13T08:20:30.307 回答