Intentando practicar JWT con NodeJS, pero cuando intento ejecutar una solicitud GET usando los encabezados de Authorization: Bearer, devuelve una matriz en lugar del objeto con el token, probé con la aplicación Postman pero fue en vano
Este es el código, el código de solicitud de obtención y publicación:
const express = require('express'); require('dotenv').config(); const jwt = require('jsonwebtoken'); const crypto = require('crypto'); const app = express(); const user = [ { username: 'John', email: 'john@gmail.com' }, { username: "Joshua", email: 'joshua@gmail.com' } ] app.use(express.json()) app.get('/api', authenicateToken, (req, res,) => { res.json(user.filter(post => post.username === req.body.name)) }) app.post('/login', (req, res) => { const username = req.body.username const use = { name: username } const accessToken = jwt.sign(use, process.env.ACCESS_KEY) res.json({ accessToken: accessToken }) }) function authenicateToken (req, res, next) { const authHeader = req.headers['authorization'] const token = authHeader && authHeader.split(' ')[1] if(token === null) return res.sendStatus(403) jwt.verify(token, process.env.ACCESS_KEY, (err, user) => { if(err) return res.sendStatus(403) req.user = user next() }) } app.listen(4000, () => { console.log('Can you hear me?'); })el filter devuelve una matriz, use el método de find y devuelve un solo elemento.
res.json(user.find(post => post.username === req.body.name))