仅在确认电子邮件后发布

时间:2014-06-05 13:00:00

标签: ruby-on-rails ruby email authentication

Guys in Rails如何实施确认电子邮件,以便非用户只能在确认电子邮件后发布。因此,任何没有帐户的普通人都可以查看该网站,提交帖子,验证电子邮件,然后该帖子处于活动状态。我已经安装了设计,但似乎更多的是用于验证用户。是什么方法来实现上面的功能,是否有一个特定的宝石使用?

3 个答案:

答案 0 :(得分:0)

我认为你需要以不同的方式思考 在您的帖子列表/显示操作中,您可以显示活跃用户的帖子,因此如果用户未确认他们的帐户,他们的帖子将不会显示,一旦他们确认他们的帖子将自动显示。

答案 1 :(得分:0)

我无法指定一个gem(这是关于主题的)。

通常,您会生成一个唯一且不可取的(长且随机)令牌,将其与最终确定的实体一起存储,在您的应用中有一条路线可以接受令牌并在相关实体中设置一个标志(在您的情况下)这个帖子)。然后构造调用该路由的确认链接 - 包括您刚生成的令牌数据 - 放入电子邮件中。

您可以在posts表中添加两个字段(您将其隐藏在网页中):

  • email_confirm_token(索引唯一字符串)
  • email_confirmed(bool)

仅显示已设置email_confirmed的帖子。

Ruby标准库SecureRandom类是令牌数据的良好来源。

如果要验证多种类型的实体,可能需要将其考虑在内。这个概念有时被称为“nonce”

答案 2 :(得分:0)

我想设计'可确认模块可以用于相同的。设计不仅仅是为了进行身份验证。就像:database_authenticatable进行身份验证一样,:确认是否验证帐户是否已经确认。

有关使用确认的更多详细信息,请参见DeviseConfirmable