【问题标题】:How to know if someone visited website before using socket.io在使用 socket.io 之前如何知道某人是否访问过网站
【发布时间】:2020-11-09 02:32:22
【问题描述】:

我是一个初学者,我创建了一个简单的聊天网站,首先询问的是用户名,然后你会被发送到公共聊天室。但问题是重新加载时它总是将您再次发送回用户名提示。我想知道同一用户是否再次加入,以便在他重新加载或再次打开页面时首先将他带到公共聊天中。

【问题讨论】:

  • 使用 cookie,它们就是为此而生的!您的应用需要身份验证吗?
  • 是的,cookie 就是最佳选择!有很多教程和示例代码,快速谷歌搜索应该可以解决问题。尝试你找到的东西,如果你卡在某个地方,就回来。
  • 您的服务器将需要处理分发 cookie,然后在客户端,连接时,只需发送 document.cookie 并让服务器处理 cookie 并发回会话数据。

标签: javascript node.js web socket.io chat


【解决方案1】:

因此,由于您使用的是 Nodejs,因此您需要允许它使用 cookie,将其添加到您的 index.js 文件中(我假设您使用的是 express):

app.use(express.cookieParser());

当用户访问您的页面时,您会在他们的浏览器中设置一个 cookie 作为密钥:

res.cookie('hasVisited', 'True')

因此,总的来说,当您的页面加载时,您可以在该页面的端点内使用此代码来判断他们之前是否访问过:

if(req.cookie.hasVisited){
   //User has visited this page before. Do whatever you want with this information, so redirect them to the public chat automatically
   res.redirect('/pageOfPublicChat');
}else{
   // User has not visted before, carry on as normal and set a cookie for next time they do
   res.cookie('hasVisited', 'True');
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-15
    • 2018-01-03
    • 2013-09-01
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    相关资源
    最近更新 更多