Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用密码重置机制设计-限制注册?_Ruby On Rails_Devise_Registration - Fatal编程技术网

Ruby on rails 使用密码重置机制设计-限制注册?

Ruby on rails 使用密码重置机制设计-限制注册?,ruby-on-rails,devise,registration,Ruby On Rails,Devise,Registration,我正在寻找一种方法,允许私人注册,或注册需要手动批准。后者可以使用所描述的策略来完成,但我认为如果我能够以某种方式利用密码重置模块来简化流程(发送带有一次性使用令牌的电子邮件,但用于创建帐户),则前者可能更方便。有没有人尝试过类似的事情,或者可能有更好的策略,更好地利用Desive中的现有组件 可能相关:我必须承认,我不太喜欢在为其他用途而设计的框架中使用功能来实现其他目标 当我想要一个私人注册时,我通常会做的是把用户创建/注册放在应用程序中,你必须被邀请到应用程序。毕竟,Desive只是用户模

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


可能相关:

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

当我想要一个私人注册时,我通常会做的是把用户创建/注册放在应用程序中,你必须被邀请到应用程序。毕竟,Desive只是
用户
模型上的一种身份验证机制

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

所有这些在Rails中都不是真正的魔法,都是通过2个控制器动作、2个视图和1个邮件程序来实现的,并且您不受任何API设计的约束

我只需要确保Desive不会对尚未兑换邀请令牌的用户进行身份验证,但就这样了

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


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

结果是有第三种策略-我可以简单地锁定新帐户(可锁定,在创建过滤器之前),并提供手动解锁功能。

我很感谢您的输入,我只是想确保我没有花费太多的时间来重新发明轮子。我认为这是一个完美的地方,宝石可以扩展设计,所以不是每个人都必须重新发明轮子。。我会看看是否可以将相关信息提取到Gem中。