使用websocket连接时,对用户进行身份验证的可能方法有哪些?
示例场景:通过加密websocket连接的基于Web的多用户聊天应用程序.如何确保(或保证)此应用程序中的每个连接都属于某个经过身份验证的用户,并且在连接期间由于虚假用户模拟而"无法"利用该连接.
如果您已经对应用程序的非websocket部分进行身份验证,则只需在连接后将会话cookie作为第一条消息传递,并像往常一样检查cookie.
警告:有人指出,当使用flashsocket时,以下内容不起作用:
如果您使用的是socket.io,则更容易 - Cookie会在连接时自动传递,并且可以像下面这样访问:
var io = require('socket.io'); var socket = io.listen(app); socket.on('connection', function(client){ cookies = client.headers['cookie']; });