MERN - logout 라우터 추가

bkboy·2022년 7월 31일
0

웹 개발

목록 보기
26/26
post-thumbnail

로그아웃은 간단하다. User에 저장된 token을 지워주기만 하면된다! (cookie에 저장된 것을 지우는 것이 아니다.)

코드

// index.js
...
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,
        });
    });
...

유저를 찾아서 token을 지운다.(데이터베이스에 저장된 정보를 지우는 것)

정리

로그인은 로그인 자체만으론 큰 의미가 없다. 로그인을 하고 그 뒤에 인증을 받아야 제대로 의미가 생긴다. 이걸 인지한다면 로그아웃의 절차가 쉬운것도 이해가 간다. 인증은 쿠키에 저장된 토큰과 로그인한 유저의 토큰 즉 db에 저장도니 토큰 두개를 비교해서 같다면 인증을 해주는 것이다. 그러니 db에 저장된 토큰을 지우는것 만으로도 인증을 막을 수 있는것이다.
후에 로그인하면 다시 토큰을 생성하니 앞으로 로그인 못하는거 아닌가하는 걱정도 필요없다!

profile
음악하는 개발자

0개의 댓글