socket.io JWT with PHP

时间:2016-06-11 07:03:10

标签: socket.io jwt

我正在运行一个php网站(www.mywebsite.com)。现在我想添加一个实时聊天功能,以便用户可以与他人聊天。

我决定在另一台与Web服务器分开的服务器(chat.mywebsite.com)中运行node.js和socket.io。

希望使用聊天功能的用户必须通过www.mywebsite.com登录。登录后,他们将被发送到聊天页面(www.mywebsite.com/chat)。因此,在此页面上,客户端必须向Web服务器发送一个JWT请求,并使用此JWT在socket.io中进行身份验证。

我的问题是:如果JWT被其他人窃取,并将JWT传递给socket.io,它肯定会伪造用户经过身份验证的服务器。那么这种方法是正确的还是你可以为我的情况建议另一种方法?谢谢!

1 个答案:

答案 0 :(得分:1)

如果某人有权访问JWT令牌 - 他们基本上劫持了他的会话,https://en.wikipedia.org/wiki/Session_hijacking

只要您的网站上没有XSS或其他瑕疵,就不应该担心。

确保socket.io在让他发送/接收消息之前使用jwt令牌对用户进行授权。