How to Authenticate a Session using Express

This guide describes the steps needed to add session-based authentication to a
Node.js app using the Express
web framework.

Middleware

Add session support by installing express-session:

$ npm install express-session

Use it as application-level middleware.

var

session =

require

(

'express-session'

); app.

use

(

session

({

secret

:

'keyboard cat'

,

resave

:

false

,

saveUninitialized

:

false

,

cookie

: {

secure

:

true

} }));

Configure

Register functions that serialize and deserialize user information to and from
the session.

var

passport =

require

(

'passport'

); passport.

serializeUser

(

function

(

user, cb

) { process.

nextTick

(

function

(

) {

return

cb

(

null

, {

id

: user.

id

,

username

: user.

username

,

picture

: user.

picture

}); }); }); passport.

deserializeUser

(

function

(

user, cb

) { process.

nextTick

(

function

(

) {

return

cb

(

null

, user); }); });

Routes

Authenticate all routes by using passport.authenticate() as
application-level middleware.

app.

use

(passport.

authenticate

(

'session'

));

Note that this middleware must be use()‘d after session() middleware added
in the previous step.

Alternatively, authenticate specific routes by using passport.authenticate()
on routes mounted at a path.

app.

get

(

'/pages'

, passport.

authenticate

(

'session'

),

function

(

req, res, next

) { });