2
我想在我的nodejs websocket應用中實現http basic認證。這裏是我的一段代碼:nodejs websocket和http基本認證
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訪問驗證它工作正常,但我不能讓它工作的WebSocket,當我通過WebSocket的連接我立即得到響應。甚至有可能通過websocket上的http進行身份驗證?
感謝,但根據RFC https://tools.ietf.org/html/rfc6455#page-53它看起來像我應該能夠在http服務器升級到websocket協議之前做http身份驗證。 – 2014-09-12 11:38:33
你確定你正在通過HTTP協商升級嗎? – tkone 2014-09-12 13:48:38
是的,我確定,因此httpServer也傳遞給WebSocketServer對象。 – 2014-09-16 11:04:55