socketio-jwt
Advanced tools
Comparing version 4.0.1 to 4.1.0
@@ -6,2 +6,5 @@ var xtend = require('xtend'); | ||
function noQsMethod(options) { | ||
var defaults = { required: true }; | ||
options = xtend(defaults, options); | ||
return function (socket) { | ||
@@ -18,19 +21,36 @@ var server = this; | ||
var auth_timeout = setTimeout(function () { | ||
socket.disconnect('unauthorized'); | ||
}, options.timeout || 5000); | ||
if(options.required){ | ||
var auth_timeout = setTimeout(function () { | ||
socket.disconnect('unauthorized'); | ||
}, options.timeout || 5000); | ||
} | ||
socket.on('authenticate', function (data) { | ||
clearTimeout(auth_timeout); | ||
if(options.required){ | ||
clearTimeout(auth_timeout); | ||
} | ||
jwt.verify(data.token, options.secret, options, function(err, decoded) { | ||
var onError = function(){ | ||
return socket.disconnect('unauthorized'); | ||
}; | ||
if (err) { | ||
return socket.disconnect('unauthorized'); | ||
onError(); | ||
} | ||
socket.decoded_token = decoded; | ||
socket.emit('authenticated'); | ||
if (server.$emit) { | ||
server.$emit('authenticated', socket); | ||
} else { | ||
server.server.sockets.emit('authenticated', socket); | ||
var onSuccess = function(){ | ||
socket.decoded_token = decoded; | ||
socket.emit('authenticated'); | ||
if (server.$emit) { | ||
server.$emit('authenticated', socket); | ||
} else { | ||
server.server.sockets.emit('authenticated', socket); | ||
} | ||
}; | ||
if(options.additional_auth){ | ||
options.additional_auth(decoded, onSuccess, onError); | ||
}else{ | ||
onSuccess(); | ||
} | ||
@@ -44,2 +64,6 @@ }); | ||
function authorize(options, onConnection) { | ||
if (!options.handshake) { | ||
return noQsMethod(options); | ||
} | ||
var defaults = { | ||
@@ -64,6 +88,2 @@ success: function(data, accept){ | ||
if (!options.handshake) { | ||
return noQsMethod(options); | ||
} | ||
return function(data, accept){ | ||
@@ -70,0 +90,0 @@ var token, error; |
{ | ||
"name": "socketio-jwt", | ||
"version": "4.0.1", | ||
"version": "4.1.0", | ||
"description": "authenticate socket.io connections using JWTs", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
20611
334