개발자/국비지원 SW
국비지원 90일차 - NodeJS login처리
성찬쿤
2020. 8. 23. 22:49
login처리
app.js
로그인 관련 라우팅 처리
app.get('/login',user.loginForm)
app.post('/login',user.loginEnd)
app.get('/logout', user.logOut);
members.js
post방식으로 했을시 loginEnd 실행
exports.loginEnd=function(req,res){
//사용자가 입력한 값
var uid=req.body.userid;
var upw=req.body.pwd;
var data={userid:uid,pwd:upw}
//res.json(data);
userdb.loginCheck(data,req,res);
}
db 로그인 체크
session생성
//로그인 처리
exports.loginCheck=(data,req,res)=>{
db.getConnection(dbconfig,function(err,con){
if(err) throw err;
var sql="select * from node_member where userid=:userid and pwd=:pwd";
con.execute(sql,data,function(err,result){
if(err) throw err;
con.close(function(err){
if(err) throw err;
//console.dir(result);
var obj={};
if(result.rows.length==0){
//아이디와 비번이 틀린 경우
obj.loginUser=null;
obj.isLogin=false;
}else{
//회원이 맞다면 obj.loginUser에 회원 정보를 저장하자.
obj.isLogin=true;
var userData=result.rows;
var tmpUser={
num:userData[0][0],
name:userData[0][1],
userid:userData[0][2],
email:userData[0][4]
}
obj.loginUser=tmpUser;
}
//세션에 obj를 저장
//콜백함수를 이용하여 저장이 완료된 이후 페이지 이동하도록 처리한다.
req.session.loginData=obj;
req.session.save(function(err){
if(err) throw err;
res.render('user/loginResult', req.session.loginData);
//res.redirect('/');
})
})//close() end---
})//execute() end---------------
})//getConnection() end--------------
}
로그인 결과 처리
<%
console.log(typeof isLogin);
if(!isLogin){
%>
<script>
alert('아이디 또는 비밀번호가 일치하지 않아요');
history.back();
</script>
<%
}else{
%>
<script>
//alert('<%=loginUser.name%>님 환영합니다.');
location.href='/';
</script>
<%
}
%>