Witam, mam pytanie, czy przy takim kodzie, jeśli wywołam middleware accessTokenVerify, to po niej w przypadku dojścia do next() wywoła się router.get('/refresh.... ?
const accessTokenVerify = (req, res, next) => {
if (!req.headers.authorization) return res.status(401).send({ msg: "Access Token is missing." })
const BEARER = 'Bearer';
const auth_token = req.headers.authorization.split(' ');
if (auth_token[0] !== BEARER) return res.status(401).send({ msg: "Access Token is not complete." })
jwt.verify(auth_token[1], process.env.ACCESS_TOKEN_SECRET, (err) => {
if (err) return res.status(401).send({ msg: "Access Token is invalid." })
next();
})
}
// @route GET api/auth/refresh
// @desc Refresh tokens
// @access Private
router.get('/refresh', (req, res, next) => {
if (!req.cookies.refreshToken) return res.status(401).send({ msg: "Refresh Token is missing." })
const BEARER = 'Bearer';
const refresh_token = req.cookies.refreshToken.split(' ');
if (refresh_token[0] !== BEARER) return res.status(401).send({ msg: "Refresh Token is not complete." })
jwt.verify(refresh_token[1], process.env.REFRESH_TOKEN_SECRET, (err, payload) => {
if (err) return res.status(401).send({ msg: "Refresh Token is invalid." })
User.findById(payload.sub, async (err, person) => {
if (!person) return res.status(401).send({ msg: "Person not found." })
const user_response = {
id: person._id,
email: person.email,
name: person.name,
surname: person.surname,
city: person.city,
birth: person.birth
}
const tokens = await generateTokens();
res.cookie('refreshToken', tokens.refreshToken, { httpOnly: true })
res.status(200).send({
accessToken: tokens.accessToken,
user: user_response
})
})
})
})
module.exports = router;