如何在nodejs中使用不记名令牌实现socket.io身份验证
How to implement socket.io authentication with bearer token in nodejs
如何验证传入连接,
如何创建私有命名空间,
在向客户端发出任何事件之前如何验证每个套接字的客户端角色
您可以将 "authorization" 设置为您的套接字连接。客户端通过握手数据的查询发送身份验证令牌 parameter.Which 然后我使用 socketAuth 方法进行验证。查看下面的代码示例,如果有帮助请告诉我
/**
* Check authorization Here
*/
ioSocket.set('authorization', function (handshakeData, callback) {
console.log("Inside Auth Handshake");
console.log(handshakeData._query);
if (handshakeData._query && handshakeData._query.token) {
var token = handshakeData._query.token;
socketAuth(token, function (err, res) {
if (err) {
console.log(err);
console.log("** Socket Authentication Done :" + false);
return callback(null, false);
} else {
console.log(" *** Socket Authentication Done :" + res);
return callback(null, res);
}
});
} else {
console.log("*Socket Authentication connection: false , Done :" + false);
return callback(null, false);
}
});
socketAuth = function (token, callback) {
verifyToken(token, function (err, res) { // method to get the user of this token from the DB and validate the connection.
if (err) {
return callback(true, false);
} else {
return callback(null, res);
}
});
}
如何使用授权令牌连接到套接字的客户端示例。
var socket = require('socket.io-client')('<SERVER IP>/?token=9a05f8279436549875d1c2cd');
socket.on('connect', function () { console.log("socket connected"); });
socket.emit('event_name',{"message":"hello"});
如何验证传入连接, 如何创建私有命名空间, 在向客户端发出任何事件之前如何验证每个套接字的客户端角色
您可以将 "authorization" 设置为您的套接字连接。客户端通过握手数据的查询发送身份验证令牌 parameter.Which 然后我使用 socketAuth 方法进行验证。查看下面的代码示例,如果有帮助请告诉我
/**
* Check authorization Here
*/
ioSocket.set('authorization', function (handshakeData, callback) {
console.log("Inside Auth Handshake");
console.log(handshakeData._query);
if (handshakeData._query && handshakeData._query.token) {
var token = handshakeData._query.token;
socketAuth(token, function (err, res) {
if (err) {
console.log(err);
console.log("** Socket Authentication Done :" + false);
return callback(null, false);
} else {
console.log(" *** Socket Authentication Done :" + res);
return callback(null, res);
}
});
} else {
console.log("*Socket Authentication connection: false , Done :" + false);
return callback(null, false);
}
});
socketAuth = function (token, callback) {
verifyToken(token, function (err, res) { // method to get the user of this token from the DB and validate the connection.
if (err) {
return callback(true, false);
} else {
return callback(null, res);
}
});
}
如何使用授权令牌连接到套接字的客户端示例。
var socket = require('socket.io-client')('<SERVER IP>/?token=9a05f8279436549875d1c2cd');
socket.on('connect', function () { console.log("socket connected"); });
socket.emit('event_name',{"message":"hello"});