【问题标题】:Best practice for creating an invitation link?创建邀请链接的最佳做法?
【发布时间】:2013-12-10 00:23:52
【问题描述】:

我正在开发一个允许用户向系统中的另一个用户发送活动邀请的 Rails 应用程序。邀请的接收者可以选择接受或拒绝邀请(我想有点像电子邀请)。

我的计划是创建一个资源来处理接受和拒绝邀请。如果需要,我将首先让用户登录,然后对接受/拒绝页面进行“友好转发”。这里的特别之处在于,我只希望一个人能够接受邀请。然后,之后的所有其他人都会收到“事件已接受”消息。我担心两件事,我正在寻找有关如何处理的建议:

1.) 竞争条件:

如何处理(几乎)同时接受同一事件的两个人?有没有办法帮助防止这种情况,以确保只有一个人可以声称对事件的“所有权”。

2.) 安全

我应该做些什么来确保人们不会欺骗接受链接并开始在事件/邀请模型中将不需要的行放入我的数据库中?

只是为了上下文,“邀请”将是保姆,所以我真的只希望一个人接受邀请。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4


    【解决方案1】:

    (1) 竞态条件: 邀请的状态(接受、拒绝或尚未响应)可以作为整数值存储在您的数据库表中。数据库基础架构应处理竞争条件。

    (2) 安全性: 不要为用户提供在数据库中创建新行的方法,并在您的 Ruby 代码中放置一个条件来检查数据库的状态,这将允许用户仅在邀请具有特定状态时才更新数据库。

    【讨论】:

      猜你喜欢
      • 2020-04-19
      • 2021-12-17
      • 2011-05-14
      • 1970-01-01
      • 2011-11-05
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多