0

我正在寻找一种允许私人注册或需要手动批准的注册的方法。后者可以使用此处描述的策略来完成,但我认为如果我能以某种方式利用密码重置模块来简化流程(发送一封带有一次性使用令牌的电子邮件,但对于创建帐户的目的)。有没有人尝试过这样的事情,或者可能有更好的策略来更多地利用设计中的现有组件?

可能相关:Ruby on rails:设计,想要添加邀请码?

4

2 回答 2

2

我不得不承认,我不喜欢在为其他用途而设计的框架中使用功能来实现其他目标。

当我想要一个必须邀请您加入应用程序的私人注册时,我通常会做的就是简单地将用户创建/注册放在应用程序中。毕竟,Devise 只是User模型之上的一种身份验证机制。

因此,例如在我当前的应用程序中,应用程序内部有一个明确的方式供现有用户邀请朋友。邀请用户有一个表单,该表单在用户表中为新人创建一个条目,其中包含他的电子邮件地址和一个告诉我用户是否已完成注册的字段。我创建了一个小令牌,它也保存到数据库中(SecureRandom.hex(8)这是创建此类令牌的好方法)。系统会向新人发送一封电子邮件,告诉他在哪里注册(使用包含令牌的 URL),而注册只是一个设置密码和其他字段的表单。

所有这一切在 Rails 中都不是真正的魔法,全部是 2 个控制器操作、2 个视图和 1 个邮件程序来完成它,并且您绝不会受到任何 API Devise 提供或不提供给您的限制。

我只需要确保 Devise 不会对尚未兑换其邀请令牌的用户进行身份验证,但仅此而已。

当然不必编写注册视图很方便,但特别是当您处理部分信息时(在我的情况下,邀请用户必须填写一些关于新用户的信息)仅由新用户补充方便的只是有常规的表格,你可以用它们做任何事情。

除非有人编写了一个扩展 Devise 的 Gem 来做到这一点,否则我想我会坚持这种方法。

于 2013-01-03T09:44:53.377 回答
0

原来还有第三种策略——我可以简单地锁定新帐户(可锁定,before_create 过滤器)并提供手动解锁功能。

于 2013-01-05T09:16:41.610 回答