NodeJS Express Session Cookie
Contents
- Cookie
- Session
Cookie
Cookie(cookieParser)
app.use(express.cookieParser()); // This code is before app.use(app.router);
Retrieve cookie(index.js)
exports.index = function(req, res){ var msg = 'Hello!'; var cookie = req.cookies; if (cookie != undefined && cookie.msg != undefined){ msg += '(saved:' + cookie.msg + ')'; } res.render('index', { title: 'Express' , msg: msg }); };
The current cookie is req.cookies
POST index_post.js
Save cookie
exports.index = function(req,res) { var text1 = req.body.text1; res.cookie('msg', text1, {maxAge:600000}); // Save Cookie res.render('index',{ title:'Express', msg: '[' + text1 + ']' }); };
clearCookie
req.clearCookie('name');
Session
session How to use?
with cookie
app.use(express.cookieParser('secret','mycom_sercred_key')); app.use(express.session({key:'session_id'}));
mycom_sercret_key : secret key
We cannot use session without cookie(secret key)
index.jade
Layout
extends layout block content h1= title p Welcome to #{title} p= msg form(method='post',action='/') table tr td p ID: td input(type='text',name='name') tr td p Password: td input(type='password' name='pass') tr td td input(type='submit')
index.js
exports.index = function(req, res){ var msg = ''; if (req.session.login != true) { // req.session msg = 'Please signin'; } else { msg = 'ID:' + req.session.name; } res.render('index', { title: 'Express', msg: msg}); };
index_post.js
// Dummy var members = { taeyeon:'kim', yoona:'im' }; exports.index = function(req,res) { var name = req.body.name; var pass = req.body.pass; var msg = ''; var member_pass = members[name]; if (member_pass == pass) { req.session.login = true; // set session property req.session.name = name; // set session msg ='"' + name + '" Login'; } else { req.session.login = false; msg = 'Failed to login'; } res.render('index',{ title:'Express', msg: '[' + msg + ']' }); };
Session Cookie
req.session.cookie, Set originalMaxAge session expire term
req.session.cookie.originalMaxAge = 600000;