nodejs中socket.io连接时带参数进行验证
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2018-01-15 12:05:06
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
有时需要socket.io先验证用户信息然后再允许连接操作的功能
var socket = io.connect(socketServer, {
'force new connection': true,
'query': 'uid=111'
});服务器接收参数
io.use(function(socket, next) {
var query = socket.request._query;
console.log(query.uid);
});服务器已经自动解析为json对象啦可以直接使用
socket.io验证
io.set('authorization', function(handshakeData, accept) {
var query = handshakeData._query;
console.log(query.uid);
//接受连接
accept(null, true);
return;
// var cookies = cookie.parse(handshakeData.headers.cookie); //解析cookies
// var connectSid = cookies['connect.sid'];
// if (connectSid) { //判断有无session登陆
// var connected = cookieParser.signedCookie(connectSid, 'technode'); //验证session的secret
// if (connected) {
// sessionStore.get(connected, function(error, session) { //去session里面取当前用户的数据
// if (error) {
// accept(error.message, false)
// } else {
// handshakeData.headers.sessions = session; //把当前用户数据传给socket.io的handshakeData
// if (session.user) {
// accept(null, true) //进行下面的链接
// } else {
// accept('No login', false)
// }
// }
// })
// } else {
// accept('No session', false) //没session
// }
// }
});