728x90
반응형
1. 먼저 화면 구성을 해준다. 버튼을 눌렀을 경우 onclick으로 함수가 실행되도록 한다.(로그아웃도 동일)
2. HTML script - get메소드를 쓰기 때문에 location 을 바꿔주어서 백엔드에서 로직이 실행되도록 한다.
// 회원탈퇴 기능
function withdrawal(i18nconvert) {
var answer;
//페이지를 이동하기 전에 confirm()을 사용해 다시 한번 확인한다.
//확인을 선택하면 answer에 true, 취소를 선택하면 false 값이 들어간다.
answer = confirm(i18nconvert("layout_withdrawal_confirm"));
//확인을 선택한 경우 자바스크립트를 호출할 때 같이 넘어온 url이라는 변수에 들어있는 주소로 페이지 이동
if(answer == true){
location = '/auth/withdrawal';
}
else {
return false;
}
}
// 로그아웃 기능
function logout(i18nconvert) {
var answer;
//페이지를 이동하기 전에 confirm()을 사용해 다시 한번 확인한다.
//확인을 선택하면 answer에 true, 취소를 선택하면 false 값이 들어간다.
answer = confirm(i18nconvert("layout_signout_confirm"));
//확인을 선택한 경우 자바스크립트를 호출할 때 같이 넘어온 url이라는 변수에 들어있는 주소로 페이지 이동
if(answer == true){
location = '/auth/logout';
}
else {
return false;
}
}
3. 백엔드쪽에서 로그아웃은 쿠키가 삭제되도록, 회원탈퇴는 DB에서 데이터가 삭제되도록 한다.
//logout시 Browser Cookie 삭제
router.get("/logout", async function( req, res, next){
try {
await res.cookie("token", req.cookies,{expiresIn:0});
res.redirect("/");
} catch(err){
console.error(err);
next(err);
}
});
//withdrawal시 Browser Cookie 삭제 하고 소독이력을 제외한 company에 관련된 내용들 삭제
router.get("/withdrawal", isNotLoggedIn, async function(req, res, next){
const CID = req.decoded.CID;
const CNU = req.decoded.CNU;
try {
await modelQuery(QUERY.Remove,COLLECTION_NAME.Company,{"_id": CID},{});
await modelQuery(QUERY.Remove,COLLECTION_NAME.Car,{"CNU": CNU},{});
await modelQuery(QUERY.Remove,COLLECTION_NAME.Device,{"CNU": CNU},{});
await modelQuery(QUERY.Remove,COLLECTION_NAME.Worker,{"CNU": CNU},{});
await res.cookie("token", req.cookies, { expiresIn : 0 });
res.redirect("/");
} catch(err){
console.error(err);
next(err);
}
});
728x90
반응형
'Node.js - JQuery' 카테고리의 다른 글
Node.js , JQuery | 테이블 만들기 | 데이터 흐름 (0) | 2021.09.14 |
---|---|
Node.js , JQuery | 테이블 만들기 | 화면 구성 (0) | 2021.09.14 |
Node.js , JQuery | Nunjucks 템플릿 엔진 사용 (0) | 2021.09.14 |
Node.js , JQuery | 비밀번호 찾기 | 화면 구성 (0) | 2021.09.14 |
Node.js , JQuery | 로그인 만들기 | 미들웨어 (0) | 2021.09.14 |