const jwt = require('jsonwebtoken'); exports.isLoggedIn = (req, res, next) => { if (req.isAuthenticated()) { next(); } else { res.status(403).send('로그인 필요'); } }; exports.isNotLoggedIn = (req, res, next) => { if (!req.isAuthenticated()) { next(); } else { res.redirect('/'); } }; exports.verifyToken = (req, res, next) => { try { req.decoded = jwt.verify(req.headers.authorization, process.env.JWT_SECRET); console.log('decode', req.decoded) return next(); } catch (error) { if (error.name === 'TokenExpiredError') { // 유효기간 초과 return res.status(419).json({ code: 419, error: '토큰이 만료되었습니다. 다시 로그인 해주세요.', }); } return res.status(401).json({ code: 401, error: '유효하지 않은 토큰입니다. 다시 로그인 해주세요.', }); } };