2012-03-12 86 views
0

我正在开发一个拍卖网站,用户必须登录之前出价。 该网站是在PHP和主要数据(用户,拍卖等)实现存储在MySQL中。 为了实现一个实时系统,我使用node.js来开发一个websocket(我使用socket.io),以便从redis获取出价数据。如果用户登录,使用php进行控制当然是非常简单的,但我想确保我的系统控制该请求是否也由记录用户在nodejs中进行。我该怎么做?传递用户数据的每个套接字请求是不确定的,这意味着每次我都必须向mysql进行查询以检查用户是否存在(这不是一个很好的做法),而且我认为这会减慢我的系统。你有什么想法吗?安全websocket与nodejs php和mysql

回答

0

您只需在创建新连接后授权用户一次。连接后这样的发送授权cookie。在检查cookie后,您可以将当前连接绑定到用户。为了提高安全性,您可以根据IP地址向客户端发送一个小型随机密钥。该密钥将随每个请求一起发送。你不需要额外的mysql请求来检查它。

+0

但cookies适用于不同的端口?因为我有http://www.example.com/下的网站和http://www.example.com:8888下的websocket,它是否可以用nodejs捕获第一个cookie?通常使用cookie的授权不是很安全? – 2012-03-12 14:51:22

+0

您可以使用document.cookie中的javascript获取auth cookie,并直接使用socket.io第一条消息发送它。 – 2012-03-12 15:20:26