流星应用程序:如何在不使用帐户的情况下获取唯一的会话/客户端ID



在我的 meteor 应用程序中,我需要能够捕获某种形式的唯一元素(会话 ID/客户端 ID 等),以帮助跟踪用户所做的操作。此时,我没有使用帐户包,所以我只是在寻找一种方法来捕获某种客户端唯一的数据元素,我可以在数据模型中使用它来跟踪每个唯一用户的活动/步骤。我可以使用什么应用程序/浏览器/会话元素来代替这个唯一的 id 字符串?

这是你要找的?

您可以使用Random.id()来获取唯一的 id 字符串。我已经多次使用它来跟踪临时对象,它非常有用。还有其他Random方法也可能派上用场。

您可以

尝试使用的是DDP连接的会话ID Meteor.connection._lastSessionId。但要小心,因为它基本上是 websocket 会话。因此,当客户端打开新选项卡或刷新页面时,此会话 ID 将有所不同。

如果要在浏览器中保留相同的会话,可以尝试实现自己的基于本地存储的会话。

一些想法:与其使用 Meteor 的Random.id(),不如将新文档插入 Mongo 集合,这样您就可以保证不会发生冲突。因为Random.id()总是有很小的机会返回重复项。这是一个正确的假设吗?

流星文档说likely to be unique,即不保证是唯一的。http://docs.meteor.com/#/full/random

将文档的_id存储在Session.set()调用中,以用作您的匿名用户ID,即 Session.get("anonUserId")完成后,您可以将其删除以保留集合修剪。

相关内容

最新更新