Los servicios del servidor (localhost/8000) almacenaron con éxito el token jwt en cookies y enviaron cookies de respuesta a los servicios del cliente. Las cookies se almacenaron con éxito en los servicios del cliente (localhost/3000), pero cuando quiero recuperarlas, se muestran indefinidas. También incluyo el paquete del analizador de cookies, pero aún se muestra indefinido.
servicios del servidor:
export const saveprofile = async (req, res) => { try { const profile = await new Profile(req.body); if (req.body.password === req.body.cpassword) { const token = await profile.generateAuthToken(); res.cookie('token', token, { expires: new Date(Date.now() + 9999999), httpOnly: true }) profile.save(); res.status(200).json('profile saved !!'); } } catch (error) { req.status(500).json(error); } }Ahora, cuando quiero consolar el token almacenado en las cookies a través de la función de autenticación, se muestra indefinido.
Función de autenticación (middleware)
import jwt from 'jsonwebtoken'; import post from '../schema/post-schema.js' import profile from '../schema/profile-schema.js'; import Cookies from 'js-cookie'; const auth = async (req, res, next) => { try { const token = req.cookies.jwt; console.log("The token is", token) //it shows undefined const verifyuser = jwt.verify(token, "mynameismohitkumarfromnationalinstituteoftechnologyagartala"); const user = await profile.findOne({ _id: verifyuser._id }); console.log(verifyuser); console.log(user); next(); } catch (error) { res.status(401).json(error); } } export default auth;Rutas de autenticación:
router.get('/post/:id', auth, getpost);Supongo que el problema aquí es nombrar
Usted nombra la cookie "token" en el servicio del servidor y la guarda como tal. Pero luego, en el middleware de autenticación, intenta recibir la "jwt"
Como nota al margen:
profile saved !! no es un JSON válido