Vi el siguiente código:
const User = require('../model/User'); const jwt = require('jsonwebtoken'); const handleRefreshToken = async (req, res) => { const cookies = req.cookies; if (!cookies?.jwt) return res.sendStatus(401); const refreshToken = cookies.jwt; const foundUser = await User.findOne({ refreshToken }).exec(); if (!foundUser) return res.sendStatus(403); //Forbidden // evaluate jwt jwt.verify( refreshToken, process.env.REFRESH_TOKEN_SECRET, (err, decoded) => { if (err || foundUser.username !== decoded.username) return res.sendStatus(403); const roles = Object.values(foundUser.roles); const accessToken = jwt.sign( { "UserInfo": { "username": decoded.username, "roles": roles } }, process.env.ACCESS_TOKEN_SECRET, { expiresIn: '10s' } ); res.json({ roles, accessToken }) } ); } module.exports = { handleRefreshToken } Y no puedo entender cuál es el Object en esta línea de código:
const roles = Object.values(foundUser.roles);Quiero decir, ¿es una instancia de una clase? ¿Que clase? ¿Dónde se instancia?
¿A qué se refiere este Object ?
Un objeto en Node.JS es cualquier cosa que esté entre corchetes, básicamente JSON. Y si realmente lo lees, todo en Node.JS es en realidad un objeto, pero eso está fuera de tema.
Lo que hace esa línea de código es encontrar el usuario encontrado y obtener todos los valores en la categoría 'roles', por lo que supongo que estaría devolviendo todos los roles que tiene el usuario encontrado.
si desea investigar más, o si no fue lo suficientemente claro, consulte esta página: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object