创建邀请链接的最佳做法?

时间:2013-12-05 21:23:22

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

我正在开发一个rails应用程序,允许用户向系统中的其他用户发送活动邀请。邀请的收件人可以选择接受或拒绝邀请(有点像我想的e-vite)。

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

1。)竞争条件:

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

2。)安全性

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

仅为上下文,“邀请”将用于保姆,所以我真的只想要一个人接受邀请。

1 个答案:

答案 0 :(得分:2)

(1)比赛条件: 邀请的状态(已接受,已拒绝或尚未响应)可以作为整数值存储在数据库表中。数据库基础设施应该处理竞争条件。

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