"error": "The public key is required. Visit https://dashboard.emailjs.com/admin/account"

35 Views Asked by At

Contexto : Estoy desarrollando una aplicación en Node.js que requiere enviar correos electrónicos de recuperación de contraseña utilizando EmailJS. He configurado correctamente mi servicio y plantilla en EmailJS, y estoy utilizando la función recoverPassword en mi controlador para manejar la solicitud de recuperación de contraseña.

Problema: Cuando intento enviar un correo electrónico de recuperación de contraseña utilizando EmailJS, obtengo el siguiente error en Postman:

{
    "ok": false,
    "message": "Error en la petición",
    "error": "The public key is required. Visit https://dashboard.emailjs.com/admin/account"
}

Codigo relevante:

// Función para recuperar la contraseña
async function recoverPassword(req, res) {
    const { email } = req.body;

    try {
        const user = await User.findOne({ email });

        if (!user) {
            return res.status(400).send({
                ok: false,
                message: 'No se encontró ningún usuario con ese correo electrónico',
            });
        }

        // Generar un token de recuperación de contraseña
        const token = uuid();

        // Guardar el token en la base de datos
        user.resetPasswordToken = token;
        user.resetPasswordExpires = Date.now() + 3600000; // 1 hora

        await user.save();

        // Enviar correo electrónico con el token de recuperación
        const emailData = {
            service_id: 'Tu_ID_de_servicio',
            template_id: 'Tu_ID_de_plantilla',
            user_id: 'Tu_clave_pública_de_usuario',
            template_params: {
                name: user.name,
                resetLink: `http://${req.headers.host}/reset/${token}`,
            }
        };
        console.log(emailData)

        await emailjs.send('Tu_ID_de_servicio', 'Tu_ID_de_plantilla', emailData);

        return res.status(200).send({
            ok: true,
            message: 'Se ha enviado un correo electrónico con instrucciones para recuperar tu contraseña',
        });

    } catch (err) {
        return res.status(500).send({
            ok: false,
            message: 'Error en la petición',
            error: err,
        });
    }
}

Intentos de solución:

-He verificado que todos los datos requeridos, como service_id, template_id y user_id, estén correctamente configurados en la función recoverPassword. -He revisado la documentación de EmailJS para asegurarme de estar utilizando la sintaxis correcta para enviar correos electrónicos.

Entorno de desarrollo:

-Node.js v14.17.0 -EmailJS v2.3.2

He intentado enviar un correo electrónico de recuperación de contraseña utilizando la función recoverPassword en mi aplicación Node.js. He verificado que todos los datos necesarios, como la dirección de correo electrónico del usuario y los identificadores del servicio y la plantilla de EmailJS, estén correctamente configurados en mi función. Esperaba que el correo electrónico de recuperación se enviara correctamente al usuario con las instrucciones para restablecer su contraseña.

0

There are 0 best solutions below