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.
socketio-jwt/test/fixture/index.js

78 lines
1.8 KiB
JavaScript
Raw Normal View History

2012-11-16 16:43:12 +01:00
var express = require('express'),
connect = require('connect'),
passport = require('passport'),
http = require('http'),
xtend = require('xtend');
2012-11-16 16:43:12 +01:00
var socketIo = require('socket.io'),
passportSocketIo = require('../../lib');
var sessionStore = new connect.session.MemoryStore(),
sessionSecret = 'asdasdsdas1312312',
sessionKey = 'test-session-key',
sessionOptions = {
store: sessionStore,
key: sessionKey,
secret: sessionSecret
};
2012-11-16 16:43:12 +01:00
var server;
require('./setupPassport');
exports.start = function (options, callback) {
if(typeof options == 'function'){
callback = options;
2013-06-05 13:38:33 +02:00
options = {
};
}
options.cookieParser = express.cookieParser;
2012-11-16 16:43:12 +01:00
var app = express();
app.configure(function(){
app.use(express.cookieParser());
2012-11-16 16:43:12 +01:00
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.session(sessionOptions));
2012-11-16 16:43:12 +01:00
app.use(passport.initialize());
app.use(passport.session());
});
app.post('/login', passport.authenticate('local', { successRedirect: '/',
failureRedirect: '/login',
failureFlash: true }));
app.get('/', function(req, res){
if(!req.user){
res.send(401);
}else{
res.json(req.user);
}
});
server = http.createServer(app);
var sio = socketIo.listen(server);
sio.configure(function(){
this.set('authorization', passportSocketIo.authorize(xtend(sessionOptions, options)));
2012-11-16 16:43:12 +01:00
this.set('log level', 0);
});
sio.sockets.on('echo', function (m) {
sio.sockets.emit('echo-response', m);
});
server.listen(9000, callback);
};
exports.stop = function (callback) {
server.close();
callback();
};