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');
});
});
하지만 로컬에서 작업을 할 때에는 쿠키가 잘 삭제되었었는데
배포를 한 후에는 세션만 파괴가되고 쿠키는 브라우저 애플리케이션탭에서 확인해보면 삭제가 되지않고 그대로 남아있는것이었다.
사실 세션이 파괴가 되었기 때문에 로그아웃은 잘 진행이 되었지만
브라우저에 쿠키가 남아있는것을 보자니 모르는 문제가 발생할 수 있을 거 같아서 찝찝했다.
그래서 찾던중에