如何在nodeJS上未经身份验证跟踪用户

How to track users without authentication on nodeJS

我使用 nodeJS 开发了一个移动网络应用程序。所有用户无需身份验证即可访问数据(食物、菜单等)。他们可以列出产品,喜欢它们,或者将它们标记为最喜欢的 ..等我想要的为他们提供 唯一 ID 首次访问)以便在他们每次访问时识别他们并通过将这些操作存储在我的数据库中来跟踪他们的操作我想要那个,因为当他们重新访问我的应用程序时,我会说 "You have marked 3 products as a favorite this month!" 或 “显然你喜欢汉堡包(列出汉堡包类别 22 次)

简而言之,当用户第一次访问我的网络应用时

当用户第二次访问我的网络应用时

快速注意:ID 必须始终存在(在客户端),直到用户以某种方式删除它。

如果这是一个基于浏览器的应用程序,那么您有两个主要选项,cookie 和本地存储。两者都不是完全永久的(可以由用户或通过浏览器维护清除),但通常可以满足您的目的。

cookie 的优点是它们会在每次请求时自动与服务器共享,这样服务器就可以知道用户是谁。

不使用用户登录的缺点是同一用户无法在不同设备上代表自己,或者如果他们获得新设备(例如切换到新设备phone)。

如果您在服务器上使用 Express,那么您可以将 express-session 与持久会话存储结合使用,然后 express-session 将自动创建 cookie,您可以在session 并且只要 cookie 持续,它就会一直存在(实际上数据会持续更长时间,但你只能在 cookie 持续时将它与用户关联起来)。这也将允许您在未来通过支持非登录世界来 "extend" 您的功能,而且还允许用户添加登录名,这样他们甚至可以从其他设备访问他们的信息。