Add authentication to socket.io server

Authenticate connections made to the socket.io server via a token query
parameter that's validated in a similar manner to the x-access-token for
HTTP requests.
This commit is contained in:
Hornwitser committed 2019-09-10 23:51:48 +02:00
1 parent 88eff17dfd
commit 0c45e57732
3 files changed
+25 -1

No files matched your search

+12
View File
@@ -921,6 +921,18 @@ class wsSlave {
}
}
io.use((socket, next) => {
let token = socket.handshake.query.token;
authenticate.check(token).then((result) => {
if (result.ok) {
next();
} else {
console.error(`SOCKET | authentication failed for ${socket.handshake.address}`);
next(new Error(result.msg));
}
});
});
io.on('connection', function (socket) {
// cleanup dead sockets from disconnected people
let terminatedConnections = 0;