Skip to content

Instantly share code, notes, and snippets.

@drinchev
Created March 31, 2012 16:26
Show Gist options
  • Select an option

  • Save drinchev/2266544 to your computer and use it in GitHub Desktop.

Select an option

Save drinchev/2266544 to your computer and use it in GitHub Desktop.

Revisions

  1. drinchev created this gist Mar 31, 2012.
    44 changes: 44 additions & 0 deletions gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,44 @@
    var express = require('express')
    , passport = require('passport')
    , sessionStore = new express.session.MemoryStore()

    , app = module.exports = express.createServer()

    , nowjs = require('now');

    app.configure( function () {
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(express.cookieParser('connect'));
    app.use(express.session({ secret : "connect", store : sessionStore }));

    app.use(passport.initialize());
    app.use(passport.session());

    app.use(express.errorHandler({dumpExeptions: true, showStack : true}));

    app.use(app.router);
    });

    nowjs.on('connect', function() {
    var self = this;

    if ( this.user.cookie && this.user.cookie['connect.sid'] ) {
    var sid = decodeURIComponent( this.user.cookie['connect.sid'] );
    sessionStore.get( sid, function( err, session ) {
    if ( session ) {
    passport.deserializeUser(session.passport.user, function(err, user) {
    self.user.session.passport = user;
    });
    }
    });
    };
    });

    var everyone = nowjs.initialize(app);
    app.listen(3000);
    console.log('app is listening');

    everyone.now.getUsername( function (cb) {
    if ( this.user.session && this.user.session.passport && this.user.session.username ) cb(this.user.session.username);
    });