Ruby on rails rubyonrails应用程序的Invite系统设计

Ruby on rails rubyonrails应用程序的Invite系统设计,ruby-on-rails,authentication,ruby-on-rails-4,invitation,sorcery,Ruby On Rails,Authentication,Ruby On Rails 4,Invitation,Sorcery,我要求经过身份验证的用户能够向某人的电子邮件地址发送邀请。单击此邀请后,将提示用户注册,完成后,将与发起人的同一帐户关联 我正在努力设计一种安全机制,以确保被邀请的用户与预期的帐户相关联,而不是其他帐户 (如果有帮助,我将使用Ruby 2、Rails 4和魔法宝石进行身份验证)以下功能: 使用巫术 在“邀请”操作中,创建用户(非活动)并将其附加到帐户。通过激活链接发送邀请电子邮件,例如http://example.com/users/:token/activate 在您的用户\u控制器中#激活:

我要求经过身份验证的用户能够向某人的电子邮件地址发送邀请。单击此邀请后,将提示用户注册,完成后,将与发起人的同一帐户关联

我正在努力设计一种安全机制,以确保被邀请的用户与预期的帐户相关联,而不是其他帐户

(如果有帮助,我将使用Ruby 2、Rails 4和魔法宝石进行身份验证)

以下功能:

  • 使用巫术

  • 在“邀请”操作中,创建用户(非活动)并将其附加到帐户。通过激活链接发送邀请电子邮件,例如
    http://example.com/users/:token/activate

  • 在您的
    用户\u控制器中#激活

  • user=user.load\u from\u activation\u token(params[:token])
    ... # 更新用户字段,例如设置密码
    用户激活!
    
    签出设备:,设备不可侵犯:。如果我已经将用户激活用于其设计目的,我如何也可以将其用于邀请?几乎相同的方式:创建用户,将其附加到帐户并为用户设置邀请令牌;发送包含令牌的链接的电子邮件;在控制器中,通过令牌查找用户,更新信息并激活她。只需点击此链接查找类似功能。滥用激活功能的问题在于,如果您创建了一个没有密码的用户,则会使用巫术。