10. boilerplate - 로그아웃 구현
IT/프로젝트

10. boilerplate - 로그아웃 구현

반응형

boilerplate 유튜브 강의 시리즈

Blog ReactJS NodeJS#15 LOGOUT

 

이번 강의에서는 로그아웃을 구현한다.

로그인시 사용자에게 토큰이 발급되고 사용자는 이 토큰을 이용해 로그인 상태를 유지하는데

로그아웃시에는 이 토큰을 사용자 DB에서 제거하는 작업을 진행하여 로그아웃을 구현한다.

 

1. index.ts에 logout api를 추가한다.

 

auth 미들웨어에서 user정보가 request에 담겨진다.

이 request에 담긴 user의 id를 통해 DB를 갱신한다. 이 때, token값을 빈 값으로 채운다.

app.get("/api/user/logout", auth, (req:express.Request, res:express.Response)=>{
    User.findOneAndUpdate({_id: req.user._id, }, {token: ""}, (err, doc)=>{
        if(err) return res.json({success: false, err});
        return res.status(200).send({
            success: true
        })
    });
}) 

 

2. postman으로 테스트

 

먼저 로그인 후

로그아웃!

 

혹시 아래와 같은 경고 메시지가 나오면

 

"DeprecationWarning: Mongoose: `findOneAndUpdate()` and `findOneAndDelete()` without the `useFindAndModify` option set to false are deprecated"

 

mongoose.connect의 2번째 인자에  useFindAndModify: false 를 추가하면 된다.

mongoose.connect(config.mongoURI, { useCreateIndex: true, useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: false })
        .then(()=>console.log('DB connected'))
        .catch((err: Error)=>console.log(err));
반응형