https://youtu.be/zye0VrVUfuI?si=9Tmd6CsGreZ3m3SL
본 포스팅은 John Ahn 님의 유튜브 강의를 참고하였습니다.
안녕하세요 오늘은 로그아웃 기능을 구현하는 방법을 알아보도록 하겠습니다.
로그아웃은 로그아웃 라우터를 만들고
데이터베이스에 있는 로그아웃 하려는 유저의 토큰을 지워주기만 하면 됩니다.
먼저 로그아웃 라우터를 만들어 보겠습니다.
server.js파일로 가서 app.get함수를 만들어 줍시다.
app.get('/api/users/logout', auth, async (req, res) => {
try {
const updatedUser = await User.findByIdAndUpdate(req.user._id, { token: "" }, { new: true });
if (!updatedUser) {
return res.json({ success: false, message: 'User not found' });
}
return res.status(200).send({
success: true
});
} catch (err) {
console.error(err);
return res.status(500).json({ success: false, error: 'Internal Server Error' });
}
});
새로운 함수가 등장합니다.
const updatedUser = await User.findByIdAndUpdate(req.user._id, { token: "" }, { new: true });
이 함수는 이름 그대로 파라미터로 들어온 것을 찾은 다음 업데이트 시켜주는 함수입니다.
저희는 id에 해당하는 토큰을 찾아서 지워야 하기 때문에
파라미터로 user의 아이디가 들어가고 토큰을 블랭크로 없애줍니다.
catch문은 에러 발생시 에러메세지를 출력합니다.
이제 로그 아웃을 해보겠습니다.
먼저 서버를 켜줍니다.
지금 데이터베이스를 보면 "itisme"라는 아이디를 로그인 시켰기 때문에
토큰이 생긴것ㅇ 보실 수 있습니다.
이 아이디를 로그아웃 시켜보겠습니다.
http://localhost:5000/api/users/logout로
아이디와 비번을 json형태로 get요청을 보내면
성공적으로 로그아웃이 되었네요
여기까지 로그인의 뼈대부분은 모두 공부한 것 같습니다.
이제 프론트엔드를 접목시키면서
본격적인 로그인 페이지를 구현해 볼 것 같습니다.
감사합니다!
'Node.js' 카테고리의 다른 글
[Node.js] Auth 기능 만들기 (0) | 2024.02.16 |
---|---|
[Node.js] 로그인 기능 (0) | 2024.02.16 |
[Node.js] 정보 암호화 및 관리2 - Bcrypt (0) | 2024.02.15 |
[Node.js, Git] 정보 암호화 및 관리 (0) | 2024.02.14 |
[Node.js] Nodemon 모듈 (0) | 2024.02.14 |