Javascript/Node.js and Express

Middleware and Decode(token)

insub4067 2021. 7. 15. 17:42

app.js

//토큰확인
router.get('/auth', authMiddleware, async (req, res) => {

  const user = res.locals.user;

  res.send({ loginid: user.loginid })

});

authMiddleware.js

const jwt = require("jsonwebtoken");
const User = require("../models/user");


module.exports = async(req, res, next) => {
    const { authorization } = req.headers;
    const [tokenType, tokenValue] = authorization.split(" ");

    if(tokenType !== 'Bearer'){
        res.status(401).send({
            errorMessage: '로그인 후 사용하세요'
        });
        return;
    };


    try {
        const { loginid } = jwt.verify(tokenValue, "ThisIsSecretKey")
        const foundUser = await User.findOne({loginid})
        res.locals.user = foundUser;
        next();
        
    } catch (error) {
        res.status(401).send({ errorMessage: '로그인 후 사용하세요' });   
        return;
    }

};