2
내 nodejs websocket 응용 프로그램에 http 기본 인증을 구현하고 싶습니다. 여기에 코드를 내 조각이다 :nodejs websocket 및 http basic auth
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에서 http를 통해 인증 할 수 있습니까?
감사합니다. 그러나 RFC https://tools.ietf.org/html/rfc6455#page-53에 따르면 http 서버가 websocket 프로토콜로 업그레이드하기 전에 http 인증을 수행 할 수 있어야합니다. –
먼저 HTTP를 통해 업그레이드를 협상하고 있습니까? – tkone
예, 확신합니다. 따라서 httpServer도 WebSocketServer 객체에 전달됩니다. –