Файлы cookie HttpOnly безопасны, поскольку они защищены от доступа браузера через API Document.cook ie и, следовательно, защищены от таких вещей, как XSS-атаки.
После успешной проверки вашего пользователя сервер должен сгенерировать токен jwt и вернуть его как cook ie вашему клиенту следующим образом:
return res.cookie('token', token, {
expires: new Date(Date.now() + expiration), // time until expiration
secure: false, // set to true if your using https
httpOnly: true,
});
Cook ie будет доступен через входящие HTTP-запросы от вашего клиента. Вы можете проверить значение jwt для cook ie с помощью функции авторизации промежуточного программного обеспечения для защиты конечных точек API:
const verifyToken = async (req, res, next) => {
const token = req.cookies.token || '';
try {
if (!token) {
return res.status(401).json('You need to Login')
}
const decrypt = await jwt.verify(token, process.env.JWT_SECRET);
req.user = {
id: decrypt.id,
firstname: decrypt.firstname,
};
next();
} catch (err) {
return res.status(500).json(err.toString());
}
};
Дополнительные сведения см. По ссылке: https://dev.to/mr_cea/remaining-stateless-jwt-cookies-in-node-js-3lle