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
) { });