dukDukz
21.05.24 local 로그인 & 공통(local, kakao) 로그아웃 본문
index.html
{% if logininfo == undefined %}
<!--로그인 처리가 안된 경우-->
<a href="/login">로그인</a>
<a href="/auth/kakao">카카오로그인</a>
{% else %}
<!--로그인 처리가 된 경우-->
<a href="/auth/info">회원정보</a>
<a href="/auth/logout">로그아웃</a>
{% endif %}
{% if msg %}
<script>
alert("{{msg}}")
</script>
{% endif %}
server.js localhost:3000 main
- 여기서 logininfo 값을 index.html 에 보내준다.
더보기
app.get('/',(req,res)=>{
const {msg} = req.query;
//console.log(req.session.authData);
res.render('./index.html',{
msg,
logininfo : req.session.authData,
// kakao든 local이든 로그인이 되면 두번 로그인 할 수 없게 처리하기 위해서 값을 보내준다
});
});
server.js - login (로컬 로그인)
// 로그인 get, post
app.get('/login',(req,res)=>{
res.render('login');
})
app.post('/login',(req,res)=>{
//npm install body-parser
const {session, body} = req;
const {userid, userpw} = body;
// userid userpw 값을 가지고 DB 조회
// 있다고 가정하고 작성
// userid root userpw root 일때 성공하는 시나리오 작성
if(userid == 'root' && userpw == 'root'){
//로그인 성공
const data = {
userid,
}
session.authData = {
["local"]:data,
}
res.redirect('/?msg=로그인완료됨');
}else{
//로그인 실패
res.redirect('/?msg=아이디와패스워드를 확인해주세요')
}
})
server.js - 사용자 정보
app.get('/auth/info',authMiddleware,(req,res)=>{
const {authData} = req.session;
const provider = Object.keys(authData)[0]; //kakao라는 글자를 provider라는 변수 안에 넣어주겠다
switch(provider){
case "kakao":
userinfo = {
userid : authData[provider].properties.nickname,
}
break;
case "local":{
userinfo = {
userid:authData[provider].userid,
}
}
}
res.render('info',{
userinfo
})
})
server.js - 공통 로그아웃
app.get('/auth/logout',(req,res)=>{
const {session} = req
const {authData} = session;
const provider = Object.keys(authData)[0];
switch(provider){
case "local":
//로그아웃을 이렇게
delete session.authData;
res.redirect('/?msg=로그아웃 되었습니다');
break;
case "kakao":
//kakao 로그아웃을 이렇게
res.redirect('/auth/kakao/unlink');
break;
}
})
local or kakao logout
'웹 개발 > Node JS' 카테고리의 다른 글
21.05.26 카카오 주소 API 의 기본 (5) | 2021.05.26 |
---|---|
http 통신 (get, post 요청 응답) - 상세 설명 (2) | 2021.05.25 |
21.05.24 kakao 로그아웃 (2) | 2021.05.24 |
21.05.24 kakao 로그인 체크 미들웨어 사용 (4) | 2021.05.24 |
210511 (회원 가입) 이미지 파일 올리기 (2) | 2021.05.11 |