多租户,这个过程对于添加用户是否安全?

时间:2012-07-10 16:00:09

标签: ruby-on-rails authentication registration

我正在构建一个多租户应用。当用户创建帐户时,他们需要输入电子邮件+密码。登录后,该用户(“管理员”)可以向其帐户添加其他用户。我希望能够将用户添加为简单 - 只需要一个电子邮件地址。以下过程对于添加用户是否安全?

  1. 管理员转到添加用户表单
  2. 管理员输入用户的电子邮件地址并点击提交
  3. 电子邮件+唯一registration_key + registration_expiration将输入到用户模型
  4. 向新用户发送一封电子邮件,其中包含注册链接(例如:http://account.myapp.com/registration/o4iwerl23msl424keree
  5. 新用户打开注册表并输入所需密码+密码_确认字段
  6. 如果URL中的registration_key与数据库中的registration匹配,并且在注册过期之前,则用户可以注册
  7. 您会推荐替代品吗?如果这是安全的,我如何绕过步骤2和步骤2中所需的密码+ password_confirmation字段。 3这个过程?

1 个答案:

答案 0 :(得分:2)

对我来说似乎足够合理。

我会在User模型中添加一个状态列。当你邀请某人时,他们会被邀请,直到他们点击注册链接并完成所有这些工作。

然后,您可以设置密码验证(或此阶段不相关的任何其他内容)在此情况下不适用

validates_presence_of :blah, :if => confirmed?

def confirmed?
  state == 'confirmed'
end

如果用户想要查看哪些受邀用户成功注册,这也可能会派上用场。如果你的用户有很多州,你可能想看看aasm gem,但这对你来说太过分了。

相关问题