【发布时间】:2015-07-24 06:40:31
【问题描述】:
我想用 Meteor 创建一个购物车,允许未登录的访问者拥有永久购物车。
据我所知,在 Meteor 中跟踪未登录访问者的唯一方法是在客户端 (localStorage) 上设置一个持久 ID,然后在每个订阅和方法调用中传递该 ID。
大多数 Web 框架在 cookie 中存储一个唯一的会话 ID,并且该 cookie 与每个请求一起发送到服务器,因此服务器始终可以识别发送请求的访问者 - 为什么不在 Meteor 中提供类似的功能?
看起来 Meteor 将 userId(如果已登录)保存在 localStorage 中,并通过 DDP 连接将该 userId 发送到服务器 - 但这仅在用户登录时才有帮助。为什么不对所有访问者通过会话ID?
我在这里遗漏了什么吗?欢迎使用其他技术 - 我只想清理我的代码,而不必到处传递 sessionId。
【问题讨论】:
-
你对流星不支持cookies你可以在这里阅读更多info.meteor.com/blog/session-cookies,你可以使用
local storage保存你需要的任何信息。 -
谢谢,该链接解释了为什么即使使用 localStorage 令牌也没有实现它。也许将购物车存储在 localStorage 中最有意义 - 尽管我真的希望在服务器端跟踪购物车,以便我可以轻松收集有关废弃购物车的数据。
-
也许使用
new Mongo.ObjectID()生成一个id,将其保存在会话变量中,然后使用Mongo 集合中的文档将所有数据保存在其中。小心谨慎,最好使用一种方法来操作该数据。这样您就可以采取适当的安全措施。
标签: meteor