Devise/CanCan演示账户

3
我正在使用devise/cancan来开发我的应用,如果用户创建帐户并登录,则一切都很顺利。
我想让用户在不创建帐户的情况下开始使用应用程序,然后如果他们想要保存工作,再进行注册。
有没有人遇到过这种情况?我应该学习如何使用devise创建虚拟帐户吗?或者通过CanCan允许未经授权的用户访问我的应用程序中的模型?
我可以详细说明我考虑的方法,但感觉这是一个非常明显的用例,已经有人提出了好的解决方案。
谢谢! Mike
2个回答

1

如果您选择创建虚拟账户,您需要通过 cookie 跟踪用户,并将该 cookie 中的值缓存到数据库中。Cancan 允许使用 ability 模型创建访客账户。例如:

user ||= User.new # Guest user, for users who are not registered or don't have an account yet

这已足够让您开始为非注册用户应用权限。请注意,仅通过cookie跟踪不是非常可靠的,可能会导致某些类型的安全风险(例如通过cookie劫持)。有一天,用户还可以决定清除他的cookie。

如果需要,我建议让用户使用访客帐户进行最少量的交互,并尽可能鼓励用户注册/登录Devise账户。

希望这有所帮助!


谢谢,目前先用这种方式实现。目前看起来进展顺利。 - CambridgeMike

0

我其实正在考虑同样的问题,我有一个制作日历的调度应用程序。为了解决这个问题,我在考虑使用

user ||= User.new

如上所建议,可以使用cookie在用户创建帐户后将数据发送到数据库。这意味着您无需担心清除cookie,因为他们可以创建帐户以保存数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接