intento hacer un sistema de inicio de sesión con un JSON Webtoken. El token se almacena en una cookie. El inicio de sesión funciona bien, el token está configurado en el lado del cliente, pero si trato de validar el token en el backend para obtener la información del usuario de la base de datos, la cookie regresa como indefinida.
Supongo que tiene algo que ver con el orden de los comandos en el archivo principal del backend, pero no puedo entender qué tiene de malo.
Ese es el archivo principal:
const express = require("express"), cookieParser = require("cookie-parser"), mongoose = require("mongoose"), bcrypt = require("bcrypt"), Joi = require("joi"), rssParser = require("rss-parser"), cors = require("cors"), jwt = require("jsonwebtoken"), verify = require("./VerifyToken"), authRoute = require("./Auth") app = express() parser = new rssParser() app.use(cookieParser()) app.use(express.urlencoded({extended: false})) app.use(express.json()); app.use("/api/user", authRoute) app.use(cors({ origin:"http://localhost:3000", credentials: true, optionsSuccessStatus:200 })) require("dotenv").config() mongoose.connect(process.env.DB_CONNECTION, { useNewUrlParser: true, useUnifiedTopology: true },() => { console.log("Status: Mongoose: Connected (Test Database)") }) const jwt = require("jsonwebtoken") const cookieParser = require("cookie-parser") module.exports = function (req, res, next){ const token = req.cookies.authToken; console.log(token) if(!token){ console.log("No Token found") res.status(400).send("Access denied") } else{ try{ const verified = jwt.verify(token, process.env.TOKEN_SECRET); req.user = verified console.log("Token verified: " + req.user._id) next() } catch{ res.status(400).send("invalid token") } } }