Orh*_*ram 4 mongodb node.js client-side-data
我使用 NodeJS 开发了一个移动 Web 应用程序。所有用户无需身份验证即可访问数据(食物、菜单等)。他们可以列出产品,喜欢它们,或者将它们标记为最喜欢的..等等我想要的是给他们唯一的ID(第一次访问时)以便在他们每次访问时识别它们,并通过将这些操作存储在我的数据库中来跟踪他们的操作想要这样,因为当他们重新访问我的应用程序时,我会说“您本月已将 3 款产品标记为最爱!” 或“显然你喜欢汉堡包(列出汉堡类别 22 次)
如果为真,则列出用户最近的活动,例如;
var uID = "ID data on client-side."
db.users.findOne({ userID: uID }, function(err, user){
if(err){
res.send("you are here for the first time!");
// >>> create new unique ID HERE and assign it to the user !!<<<
} else {
res.send("you were here before");
// already have an ID, go on
}
})
Run Code Online (Sandbox Code Playgroud)快速注意:ID 必须始终存在(在客户端),直到用户以某种方式将其删除。
如果这是基于浏览器的应用程序,那么您有两个主要选项:cookie 和本地存储。两者并不完全永久(可以由用户或浏览器维护清除),但通常会满足您的目的。
Cookie 的优点是,它们会在每次请求时自动与服务器共享,以便服务器可以判断用户是谁。
不使用用户登录的缺点是,同一用户无法在不同设备上或在获得新设备(例如切换到新手机)时代表自己。
如果您在服务器上使用Express,那么您可以将express-session与持久会话存储结合使用,然后express-session将自动创建cookie,您可以在会话中存储您想要的任何特定于用户的数据,并且它将持续存在只要 cookie 持续存在(实际上数据会持续更长时间,但只要 cookie 持续存在,您就只能将其与用户关联)。这还允许您通过支持非登录世界来“扩展”您的功能,而且还允许用户添加登录信息,以便他们甚至可以从其他设备访问其信息。
| 归档时间: |
|
| 查看次数: |
3333 次 |
| 最近记录: |