我希望能够允许用户使用AJAX对资源进行投票,但是,我不确定如何在我的资源控制器中获取current_user的id。
我已经四处搜索了,我已经阅读了很多建议,将user_id保存为隐藏字段,然后使用它来发送AJAX请求,但是这不会打开我的安全漏洞吗?任何恶意用户都可以改变user_id,然后以他选择的随机用户投票。
获取AJAX请求的current_user id的标准方法是什么?
由于
答案 0 :(得分:3)
如果整个事情落后于身份验证,则您不需要在视图中存储user_id,也不需要花费任何精力来传递它。只需正常访问控制器中的current_user
(或current_user.id
)。
“整个事情落后于身份验证”我的意思是具有视图的控制器具有投票界面,以及AJAX请求的目标控制器应该都有before_filter :authenticate_user!
,或者派生自这样做的。如果是这种情况,设计将以与每个其他经过身份验证的请求相同的方式识别用户。请求是JSON并不重要,除非您可能需要调整未经授权的行为以包含javascript重定向到您的登录,如果您还没有类似的东西。