[express] 프로젝트 배포 후 res.clearCookie로 쿠키 삭제 안되는 이슈

woohyuk·2023년 1월 14일
0
post-custom-banner

Set-Cookie 설정을 통해 서버에서 브라우저로 쿠키를 저장하는 식으로 로그인 로직을 구현하고 사용자가 로그아웃을 하면 서버에서 세션을 파괴하고 쿠키를 삭제하는 식으로 진행하였다.

  • 쿠키 생성 코드
const express = require('express');
const app = express();
const session = require('express-session');

app.use(
  session({
    key: 'user_auth',
    saveUninitialized: false,
    resave: false,
    secret: process.env.COOKIE_SECRET,
    proxy: process.env.NODE_ENV === 'production',
    cookie: {
      httpOnly: true,
      sameSite: process.env.NODE_ENV === 'production' && 'None',
      secure: process.env.NODE_ENV === 'production',
      domain: process.env.NODE_ENV === 'production' && '.devlog.shop',
    },
  })
);
  • 쿠키 삭제 코드
const express = require('express');
const router = express.Router();

router.post('/logout', isLoggedIn, (req, res) => {
  req.session.destroy(err => {
    if (err) throw err;
    res.clearCookie('user_auth');
    res.send('ok');
  });
});

하지만 로컬에서 작업을 할 때에는 쿠키가 잘 삭제되었었는데
배포를 한 후에는 세션만 파괴가되고 쿠키는 브라우저 애플리케이션탭에서 확인해보면 삭제가 되지않고 그대로 남아있는것이었다.

사실 세션이 파괴가 되었기 때문에 로그아웃은 잘 진행이 되었지만
브라우저에 쿠키가 남아있는것을 보자니 모르는 문제가 발생할 수 있을 거 같아서 찝찝했다.

그래서 찾던중에

profile
기록하는 습관을 기르자
post-custom-banner

0개의 댓글