node.js로 로그인 및 로그아웃 해보기
페이지 정보
본문
1. source
var express = require('express');
var session = require('express-session');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(session({
secret: 'bruce0415!@#$%^&*',
resave: false, // 계속 새로 발급하지 않는다
saveUninitialized: true // 세션아이디를 사용하기 전까지 미발급
}));
app.get('/count', function(req, res){
// session의 count 값이 존재할 경우
if(req.session.count){
// 카운트 증가
req.session.count++;
}else{
// 카운트 초기화
req.session.count = 1;
}
res.send('count : ' + req.session.count);
});
app.get('/tmp', function(req, res){
// /count의 req.session.count 에 담겨있는 값을 출력
res.send('result : ' + req.session.count);
});
// logout
app.get('/auth/logout', function(req, res){
// 세션을 딜리트
delete req.session.displayName;
res.redirect('/welcome');
});
// welcome 페이지
app.get('/welcome', function(req, res){
if(req.session.displayName){
res.send(`
<h1>Hello, ${req.session.displayName}</h1>
<a href="/auth/logout">Logout</a>
`);
}else{
res.send(`
<h1>Welcome</h1>
<a href="/auth/login">Login</a>
`);
}
});
// 로그인 페이지 및 로그인 했을 때 값을 표현하는 페이지
app.post('/auth/login', function(req, res){
// 임의로 계정을 코딩
var user = {
username: 'bruce',
password: 'bruce',
displayName: 'bruce'
};
var uname = req.body.username;
var pwd = req.body.password;
if(uname === user.username && pwd === user.password){
// 로그인 시 사용자의 디스플레이네임값을 session에 저장
req.session.displayName = user.displayName;
res.redirect('/welcome');
//res.send(`${uname}님 환영합니다.`);
}else{
res.send('Do not Login <a href="/auth/login">Login</a>');
}
});
// 로그인
app.get('/auth/login', function(req, res){
var output = `
<h1>Login</h1>
<form action="/auth/login" method="post">
<p>
<input type="text" name="username" placeholder="username">
</p>
<p>
<input type="password" name="password" placeholder="password">
</p>
<p>
<input type="submit">
</p>
</form>
`;
res.send(output);
});
app.listen(3003, function(){
console.log("Connected 3003 Port");
});
2. 페이지
- 이전글node.js로 로그인 세션 mysql에 저장처리 22.07.22
- 다음글node.js로 세션 카운트 실습 22.07.21
댓글목록
최고관리자님의 댓글
최고관리자 작성일좋은글 감사합니다. ^^