npm - connect-flash

connect-flash

사용법 정리

const flash = require('connect-flash');

app.use(session({
  resave: false,
  saveUninitialized: false,
  secret: 'test',
  cookie: {
    httpOnly: true
  },
}));

app.use(flash());

app.get('/flash', function(req, res){
  // Set a flash message by passing the key, followed by the value, to req.flash().
  req.flash('info', 'Flash is back!') // key = info, value = Flash is back!
	// session에 입력한 정보를 기입한다
  res.send('flash');
});
 
app.get('/flash-display', function(req, res){
  // Get an array of flash messages by passing the key to req.flash()
  
  res.render('index', { messages: req.flash('info') }); // 한 번 자원을 사용하고 나면 세션에서 사라진다. 
});

passport에서 사용하기

app.post('/auth/login_process', passport.authenticate('local', {
  successRedirect : '/', // 성공시 이 루트로
  failureRedirect : '/auth/login', // 실패시 이 루트로
  failureFlash : true // 로그인 실패시 flash message 사용
}));

app.get('/auth/login', (req, res) => {
	const fmsg = req.flash();
	let feedback = '';
	if (fmsg.error) {
		feedback = fmsg.error[0]
	}
	
	res.render('login', {msg : feedback});
});