Estoy tratando de hacer que una ruta sea accesible solo si está autenticado con JWT usando el siguiente middleware, pero parece que no puedo encontrar una manera de pasar el token en la solicitud de obtención del lado del cliente. Funciona bien en cartero y, si utilizo una búsqueda del lado del cliente, no me redirigirá a la página a la que quiero ir.
autenticación.js
async function (req, res, next) { const token = req.header('x-auth-token'); if (!token) { return res.status(401).json({ msg: 'Forbidden' }); } try { const decoded = jwt.verify(token, process.env.TOKEN_SECRET); req.user = decoded.user; next(); } catch (e) { return res.status(401).json({ err: 'fail' }); } };
lado del servidor
router.get('/', auth, function (req, res, next) { res.render('pages/person'); });
Simplemente puede adjuntar su token
a los headers
de la solicitud y enviarlo con el método get
o incluso 'delete`.
por ejemplo, en el método de fetch
puede adjuntar su token de esta manera en su lado del cliente:
fetch('URL_GOES_HERE', { method: 'post', headers: new Headers({ 'Authorization': YOUR_TOKEN, 'Content-Type': 'application/x-www-form-urlencoded' }), });
Ahora, puede recuperar el token en la aplicación del nodo:
const token = req.headers.authorization || "";