使用JWT进行Socket.io身份验证

时间:2018-02-23 13:25:32

标签: node.js socket.io jwt

最近我开始在工作中学习socket.io,我得到了发出事件和听事件的一般概念。目前我正在使用Node.js,Express和Socket.io构建一个简单的聊天应用程序,我想在我的应用程序中添加身份验证,以便在页面刷新时保存数据并保留连接。

我阅读了很多关于基于令牌的身份验证与基于cookie的身份验证的内容,我了解到在大多数情况下使用基于令牌的身份验证策略会更好。

我发现很多关于这个主题的npm包有助于验证请求,但是我找不到一种简单的实现方法来进行简单的身份验证。

我的问题是:使用套接字实现身份验证的最佳/正确方法是什么?

如果你们能帮我解决这个问题,我真的很感激。

1 个答案:

答案 0 :(得分:1)

当客户端连接到服务器时,要求发送'身份验证'使用令牌向服务器发送事件,如果用户未在5秒内发送此事件,则断开连接,如果令牌无效则断开连接,只允许他们在有有效访问令牌时保持连接。

同时确保他们每次向服务器发出请求时都会发送此令牌。验证它,而不是100%必要的,因为他们不能在没有有效令牌的情况下首先连接,但它不会受到伤害。