Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

300
Vistas
¿Cómo puedo almacenar mi token JWT en localstorage?

userAction.js -> Interfaz, Acción

 export const login = (userID, password) => async (dispatch) => { try { dispatch({ type: USER_LOGIN_REQUEST }); const url = "http://localhost:8080/authenticate/"; const config = { auth: { username: userID, password, }, }; const data = {}; const response = await axios.post( url, data, config, ) dispatch({ type: USER_LOGIN_SUCCESS, payload: config}); if (response.status === 200) { // Login succeeded const token = response.data.token; console.log("TOKEN\n" + token); config.token = response.data.token; console.log(response.data.token); } localStorage.setItem("userInfo", JSON.stringify(config) ); }

Mi función de inicio de sesión en el servidor REST:

 exports.login = async (req,res) =>{ const b64auth = (req.headers.authorization || '').split(' ')[1] || ''; const [userID, password] = Buffer.from(b64auth, 'base64').toString().split(':'); const user = await User.findOne({ userID: userID }); if(!user) return res.status(400).send('User not found'); const validPass = await bcrypt.compare(password, user.password); if(!validPass) return res.status(400).send('Incorrect Password'); //const token = generateToken(user.userID); let payload = { userID: user.userID } const token = generateToken(userID); res.header('Authorization', 'Bearer ' + token).json(user); return token; }

Genero mi token de esta manera:

 const generateToken = (_id) => { console.log('Signing token for ID ', _id); console.log('Secret key is ', process.env.JWT_KEY); const token = jwt.sign({ _id}, process.env.JWT_KEY, { expiresIn: "30d", }); console.log('Signed token: ', token); return token; };

Intento almacenar mi token en mi estado "userInfo"... pero solo se muestra el nombre de usuario y la contraseña, no el token... Funciona antes... pero no sé por qué ya no funciona ^^ Estoy completamente en una pérdida

espero que alguien vea el error

mi consola me da el detalle:

 TOKEN undefined
about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Está esperando que response.data sea un objeto. En ese caso, actualice su controlador de API para devolver el token de propiedad en un objeto:

 exports.login = async (req,res) =>{ const b64auth = (req.headers.authorization || '').split(' ')[1] || ''; const [userID, password] = Buffer.from(b64auth, 'base64').toString().split(':'); const user = await User.findOne({ userID: userID }); if(!user) return res.status(400).send('User not found'); const validPass = await bcrypt.compare(password, user.password); if(!validPass) return res.status(400).send('Incorrect Password'); //const token = generateToken(user.userID); let payload = { userID: user.userID } const token = generateToken(userID); return res.header('Authorization', 'Bearer ' + token).json({ user, token }); }

¡Espero que eso ayude!

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda