jquery - 如何使用 Devise 和 activerecord-reputation-system 获取 current_user 进行 Ajax 投票

标签 jquery ruby-on-rails ajax

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

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

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

谢谢

最佳答案

如果整个事情都在身份验证的后面,那么您不需要将 user_id 存储在 View 中,或花费任何精力来传递它。像平常一样,只需在 Controller 中访问 current_user (或 current_user.id)即可。

“整个事情都在身份验证后面”,我的意思是具有投票接口(interface)的 View 的 Controller ,以及 AJAX 请求的目标的 Controller 都应该有 before_filter :authenticate_user!,或从具有此功能的类派生。如果是这种情况,devise 将以与其他所有经过身份验证的请求相同的方式识别用户。请求是否为 JSON 并不重要,但您可能需要调整未经授权的行为以将 javascript 重定向包含到您的登录信息(如果您还没有类似的内容)。

关于jquery - 如何使用 Devise 和 activerecord-reputation-system 获取 current_user 进行 Ajax 投票,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14301610/

相关文章:

css - Bootstrap img 高度 : auto property overrides explicit height

ruby-on-rails - Rack-Bug 面板不会出现在我的 Rails 应用程序中

javascript - jQuery .change() 函数因数字输入而严重延迟

javascript - 有没有更好的方法来创建元素并将文本附加到它们/周围?

javascript - 关闭所有通过委托(delegate)创建的打开的 Bootstrap 弹出窗口

javascript - 如何重构以从同一个函数中获取两个值?

javascript - setInterval CPU 密集吗?

javascript - 在 Angular 2 组件函数中将 jQuery 代码包装在 `document.ready()` 中是否有意义

ruby-on-rails - 无法在 Rails 中将电子邮件作为 URL 中的参数发送

javascript - 如何使用 AJAX 隐藏按钮,直到特定的 div 未显示在我的页面中?