Я работаю с NodeJs с аутентификацией токена с использованием jwt (jsonwebtoken).
Я пытаюсь добавить аутентификацию в конечную точку, чтобы проверить правильность предоставленного токена, следующий это мои методы:
async function create(req, res) {
try {
const token = req.headers["access-token"];
console.log("token:" + token);
console.log("decodedToken:", req.decoded);
return res.status(200).send(req.body.comments);
} catch (error) {}
}
async function verifyToken(req, res, next) {
const tokenHeader = req.headers["access-token"];
const token = tokenHeader.split(" ")[1];
console.log("tokenVerify:", tokenHeader.split(" ")[1]);
console.log("tokenn:", token);
if (token) {
jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, decoded) => {
if (err) {
return res.json({ mensaje: "Invalid Token." });
} else {
req.decoded = decoded;
next();
}
});
} else {
res.send({
mensaje: "No provided token.",
});
}
}
module.exports = {
create,
verifyToken,
};
Это мой код маршрута:
app.post("/comment/", verifyToken, commentsController.create);
Но я всегда получаю сообщение Invalid Token.
.
Это способ как я генерирую токен, когда пользователь пытается войти в приложение:
function generateAccessToken(user) {
return jwt.sign(user, process.env.ACCESS_TOKEN_SECRET, { expiresIn: 1440 });
}
Я передаю токен через заголовки в следующем формате:
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9....
следующие символы.