我正在尝试使用Devise + Rails实现延迟注册(又称延迟身份验证,即逐步参与)网站流程。
gradual engagement ,我的意思是
“不要让用户登录,直到她 绝对必须,但让她玩 在网站周围记住“
我正在寻找一种使用设计来实现此目的的简单方法。我觉得这是许多其他人必须做的事情,但我还没有找到相关的文档。
以下方法听起来不错,所以我将从头开始:
- 创建仅“可记住”的用户
- 访问某些页面时,要求这些用户拥有更多页面 他们的数据,如用户名和 密码,通过类似的东西 “before_filter:authenticate_user!”在 适当的控制器。
醇>
这种方法有意义吗?还有更好的吗?您是否已使用愿意分享的Devise + Rails实施逐步参与注册/注册表单的方法?
答案 0 :(得分:2)
我认为你给我们的文章的重点是:
这是什么意思?
我们举一个例子。你是一个电子商务网站。
客户何时必须“最后”注册?在结账时。前所未有。因此,您无需存储或记住有关用户的任何信息。 设计永远不会在这里使用。
如何管理未签约的进/出用户的购物车?我会说数据库,会话ID为主键。或者您可以将所有项ID存储在cookie中,供以后使用。
在您的代码中,如果您有一个名为checkout
的操作,只需在控制器中设置before_filter authenticate_user!, :only => [:checkout]
但也许你有一些限制,例如能够保留用户的昵称而不签约他?
答案 1 :(得分:1)
另一种选择是进行仅限电子邮件注册,然后发送带有特殊链接的电子邮件,以便稍后完成注册/将其带回其帐户。这是一个积极维护的关于设计电子邮件的注册教程:
https://github.com/plataformatec/devise/wiki/How-To:-Email-only-sign-up
我已经将这个教程用于我之前做过的网站,我们只是要求他们的电子邮件地址进行注册,然后发送电子邮件给他们完成注册/添加密码。
答案 2 :(得分:0)
如果需要,您可以将所有未签名用户的数据保存在Cookie中,并在用户登录后将其传输到数据库。