@@ -7,7 +7,9 @@ var express = require('express')
77 , routes = require ( './routes' )
88 , user = require ( './routes/user' )
99 , http = require ( 'http' )
10- , path = require ( 'path' ) ;
10+ , path = require ( 'path' )
11+ , passport = require ( 'passport' )
12+ , LocalStrategy = require ( 'passport-local' ) . Strategy ;
1113
1214var app = express ( ) ;
1315
@@ -17,8 +19,12 @@ app.configure(function(){
1719 app . set ( 'view engine' , 'jade' ) ;
1820 app . use ( express . favicon ( ) ) ;
1921 app . use ( express . logger ( 'dev' ) ) ;
22+ app . use ( express . cookieParser ( ) ) ;
2023 app . use ( express . bodyParser ( ) ) ;
2124 app . use ( express . methodOverride ( ) ) ;
25+ app . use ( express . session ( { secret : 'MySupperSecretSecret' } ) ) ;
26+ app . use ( passport . initialize ( ) ) ;
27+ app . use ( passport . session ( ) ) ;
2228 app . use ( app . router ) ;
2329 app . use ( express . static ( path . join ( __dirname , 'public' ) ) ) ;
2430} ) ;
@@ -27,9 +33,37 @@ app.configure('development', function(){
2733 app . use ( express . errorHandler ( ) ) ;
2834} ) ;
2935
36+ // to use persistent login session
37+ passport . serializeUser ( function ( user , done ) {
38+ console . log ( 'serialize ' , user ) ;
39+ done ( null , user ) ;
40+ } ) ;
41+
42+ passport . deserializeUser ( function ( id , done ) {
43+ console . log ( 'deserialize ' , id ) ;
44+ done ( null , id ) ;
45+ } ) ;
46+
47+ // TODO: change to use passport-facebook
48+ // https://github.com/jaredhanson/passport-facebook
49+ passport . use ( new LocalStrategy (
50+ function ( username , password , done ) {
51+ // Find the user from your DB (MongoDB, CouchDB, other...)
52+ console . log ( 'login with ' , username , password ) ;
53+ done ( null , username ) ;
54+ }
55+ ) ) ;
56+
3057app . get ( '/' , routes . index ) ;
3158app . get ( '/users' , user . list ) ;
3259
60+ app . get ( '/auth' ,
61+ passport . authenticate ( 'local' , { failureRedirect : '/login' } ) ,
62+ function ( req , res ) {
63+ res . redirect ( '/' ) ;
64+ }
65+ ) ;
66+
3367http . createServer ( app ) . listen ( app . get ( 'port' ) , function ( ) {
3468 console . log ( "Express server listening on port " + app . get ( 'port' ) ) ;
3569} ) ;
0 commit comments