- logout route를 만든다.
- 로그아웃하려는 유저를 데이터베이스에서 찾는다.
- 해당 유저의 토큰을 지운다.
auth 기능 중 인증을 할 때 클라이언트에 있는 쿠키 안의 토큰을 가져와서
데이터베이스에 있는 토큰과 같은 지 확인을 함으로써 인증을 처리했다.그런데 만약에 데이터베이스에 토큰이 없다면, 클라이언트의 토큰과 비교가 안되기 때문에 인증을 할 수 없어서 로그인 기능이 풀려버린다.
그래서 데이터베이스에서 유저의 토큰을 지워주면 된다.
app.get('/api/users/logout', auth, (req, res) => { User.findOneAndUpdate({ _id: req.user._id }, { token: '' }, (err, user) => { if(err) return res.json({ success: false, err }); return res.status(200).send({ success: true, }); }); });
mongoDB에서 token이 있는 id로 진행을 해 볼 것이다.
token이 있다는 것은 로그인이 되어있다는 의미!
먼저 로그아웃을 시킨다.
그리고 DataBase에 Token이 있는 지 확인 해 볼 것이다.
이로서 로그아웃 기능을 완료했다!
따라하며 배우는 노드, 리액트 시리즈를 통해 개념을 익히면서 실습하고 있습니다.
https://bit.ly/3wGxKGC