nodejs websocket和http基本authentication

我想在我的nodejs websocket应用程序中实现http基本身份validation身份validation。 这是我的一段代码:

var http = require('http'); var auth = require('http-auth'); var express = require('express'); var app = express(); //.... basic = auth.basic({ realm: "websocket auth", file: __dirname + "/users.htpasswd" }); var server = http.createServer(basic); app.listen = function() { return server.listen.apply(server, arguments); }; // WEBSOCKET var WebSocketServer = require('websocket').server; var wss = new WebSocketServer({ httpServer: server }); wss.on('request', function(request) { var connection = request.accept(); connection.sendUTF('Server: message ws auth'); }); 

对于标准的http访问身份validation,它工作正常,但我不能让它在websocket上工作,当我通过websocket连接,我立即得到回应。 甚至有可能通过websocket上的http进行身份validation?

不直接。

Websockets不是HTTP,所以他们不会像HTTP AUTH,发送cookies等等。

对于我们的websocket连接,我们传递cookie作为请求URL的参数。 然而,我们使用socket.io,它提供了一个类似于HTTP服务器中间件的authenticationfunctionsorting。

你应该可以用Websocket-node中的#accept方法做类似的#accept 。 检查进入的数据,如果没有授权,拒绝连接。