node.js로 로그인 및 로그아웃 해보기 > BlockChain 자료실

본문 바로가기
사이트 내 전체검색

BlockChain 자료실

node.js로 로그인 및 로그아웃 해보기

페이지 정보

profile_image
작성자 조선제일검
댓글 1건 조회 2,234회 작성일 22-07-21 00:24

본문

 

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(reqres){
// session의 count 값이 존재할 경우
if(req.session.count){
// 카운트 증가
req.session.count++;
}else{
// 카운트 초기화
req.session.count = 1;
}
res.send('count : ' + req.session.count);
});

app.get('/tmp'function(reqres){
// /count의 req.session.count 에 담겨있는 값을 출력
res.send('result : ' + req.session.count);
});
// logout
app.get('/auth/logout'function(reqres){
// 세션을 딜리트
delete req.session.displayName;
res.redirect('/welcome');
});
// welcome 페이지
app.get('/welcome'function(reqres){

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(reqres){
// 임의로 계정을 코딩
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(reqres){

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(3003function(){

console.log("Connected 3003 Port");
});

2. 페이지

 

image (2).png

 

image (3).png

 


 



 

 

 

 

댓글목록

profile_image

최고관리자님의 댓글

최고관리자 작성일

좋은글 감사합니다. ^^

회원로그인

회원가입

사이트 정보

회사명 : (주)리눅스데이타시스템
대표이사 : 정정모
본사 : 강남구 봉은사로 114길 40 홍선빌딩 2층
- tel : 02-6207-1160
대전지사 : 유성구 노은로174 도원프라자 5층
- tel : 042-331-1161

접속자집계

오늘
2,205
어제
1,461
최대
3,935
전체
1,128,452
Copyright © www.linuxdata.org All rights reserved.