This repository has been archived on 2024-11-11 . You can view files and clone it, but cannot push or open issues or pull requests.
Kevin Caffrey
d8c7c0ed7d
Don't pass error message on failed accepts due to not being logged in, or the client gets 500s when they should get 403s
Access Passport.js user information from socket.io connection.
Installation
npm install passport.socketio
Usage
//configure passport and express
var socketIo = require("socket.io"),
passportSocketIo = require("passport.socketio");
var sio = socketIo.listen(webServer);
sio.set("authorization", passportSocketIo.authorize({
sessionKey: 'express.sid', //the cookie where express (or connect) stores its session id.
sessionStore: mySessionStore, //the session store that express uses
sessionSecret: "my session secret", //the session secret to parse the cookie
fail: function(data, accept) { // *optional* callbacks on success or fail
accept(null, false); // second param takes boolean on whether or not to allow handshake
},
success: function(data, accept) {
accept(null, true);
}
}));
sio.sockets.on("connection", function(socket){
console.log("user connected: ", socket.handshake.user.name);
//filter sockets by user...
var userGender = socket.handshake.user.gender,
opposite = userGender === "male" ? "female" : "male";
passportSocketIo.filterSocketsByUser(sio, function (user) {
return user.gender === opposite;
}).forEach(function(s){
s.send("a " + userGender + " has arrived!");
});
});
License
MIT - José F. Romaniello 2012.
Description
Authenticate socket.io incoming connections with JWTs.
https://www.npmjs.com/package/@thream/socketio-jwt
Readme
3.9 MiB
Languages
TypeScript
98.9%
Shell
1.1%