cookie를 다루려면 parsing 해주는 것이 필요하여 cookie-parser를 가져와준닷
const cookieParser = require("cookie-parser");
middleware로 등록
app.use(cookieParser());
cookies가 있는지, 데이터베이스에 있는지, token이 유효한지 확인 후 accessToken 발급!
app.get("/refresh", (req, res) => {
// cookies 가져오기 cookie-parser
const cookies = req.cookies;
if (!cookies?.jwt) return res.sendStatus(403);
const refreshToken = cookies.jwt;
// refreshtoken이 데이터베이스에 있는 토큰인지 확인
if (!refreshToken.includes(refreshToken)) {
return res.sendStatus(403);
}
// token 이 유효한 토큰인지 확인
jwt.verify(refreshToken, refreshSecretText, (err, user) => {
if (err) return res.sendStatus(403);
// accessToken을 생성하기
const accessToken = jwt.sign({ name: user.name }, secretText, {
expiresIn: "30s",
});
res.json({ accessToken });
});
});