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;