I tried to make a sign-up and a login authorization, but the token doesn't save in the header, resulting in undefined by trying to get it. This is the code:
import {Usuario} from '../models/Usuario.js';
import bcrypt from 'bcryptjs';
import jwt from 'jsonwebtoken';
export const registrarUsuario = async (req, res) => {
try{
const {run, nombre, password, rol} = req.body;
const passwordHash = await bcrypt.hash(password, 10);
const usuario = await Usuario.create({
run,
nombre,
password: passwordHash,
rol
})
const token = jwt.sign({run: usuario.run, rol: usuario.rol}, "mi_clave_secreta", {
expiresIn: 120
});
res.json({
auth: true,
token: token
});
} catch (error) {
return res.status(500).json({message: error.message});
}
}
export const loginUsuario = async (req, res) => {
try{
const {run, password} = req.body;
const usuario = await Usuario.findByPk(run);
if(usuario){
const validPassword = await bcrypt.compare(password, usuario.password);
if(validPassword){
const token = jwt.sign({run: usuario.run, rol: usuario.rol}, "mi_clave_secreta", {
expiresIn: 120
});
res.json({
auth: true,
token: token
});
} else {
return res.status(401).json({message: 'Contraseña incorrecta'});
}
} else {
return res.status(404).json({message: 'Usuario no está registrado'});
}
} catch (error) {
return res.status(500).json({message: error.message});
}
}
export const paginaProtegida = (req, res, next) => {
const bearerHeader = req.headers['authorization'];
console.log(bearerHeader);
}
And using the paginaProtegida, the console throws the bearerHeader as Undefined. Any help is good, please.