반응형
boilerplate 유튜브 강의 시리즈
이번 강의에서는 로그아웃을 구현한다.
로그인시 사용자에게 토큰이 발급되고 사용자는 이 토큰을 이용해 로그인 상태를 유지하는데
로그아웃시에는 이 토큰을 사용자 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));
반응형
'IT > 프로젝트' 카테고리의 다른 글
12. boilerplate - axios 설치 및 react 구성파일 (0) | 2021.01.01 |
---|---|
11. boilerplate - create react app (0) | 2020.12.24 |
9. boilerplate - 미들웨어에 authorization 추가하기 (0) | 2020.10.30 |
8. boilerplate - 로그인 구현 with jsonwebtoken (0) | 2020.10.23 |
7. boilerplate - 해시 패스워드 with BCRYPT (0) | 2020.10.22 |