【发布时间】:2019-06-25 16:15:24
【问题描述】:
我想确保用户在发送聊天之前已登录。为此,我应该使用在每个连接上触发的身份验证中间件还是使用在每个事件上触发的中间件?
我担心如果我使用前者,用户可以先登录然后注销(不会丢失连接)并在未登录的情况下继续发送消息)。
但是,查看所有不同的 stackoverflow 帖子,没有人提到这个问题。谁能告诉我常用的方法是什么?
【问题讨论】:
-
您的登录和注销是如何工作的?它是通过 socket.io 完成的,还是在 socket.io 连接建立之前通过网页中的 http 完成的?如果它是通过 http 完成的,那么您可以在该用户注销时关闭所有 socket.io 连接,这将阻止您担心的事情。典型的网页会在注销后重定向到新页面(从而断开 socket.io 连接)。
-
我明白了。这是典型的做法吗?例如,如果黑客弄清楚如何在注销时保持连接,检查每个发射是否会更安全?
标签: node.js websocket socket.io