Estoy tratando de implementar google oauth en mi aplicación. Tengo un enlace a una página de inicio de sesión de Google, que al completar con éxito el formulario redirige a la ruta expresa de mi servidor (ver más abajo). El controlador de esta ruta debe hacer UNO de los siguientes:
Envíe el token generado y la información del usuario de vuelta al front-end para que pueda guardarse en el almacenamiento local de la sesión -> seguimiento a continuación
de alguna manera guarde esta información en la sesión y luego redirija al usuario a la página de inicio
Controlador de ruta:
export const googleAuth = async (req, res) => { const googleUser = await getGoogleUser({ code: req.query.code }); let user = await User.findOne({ email: String(googleUser.email) }); if (!user) { user = new User(); } try { const token = jwt.sign({ _id: user._id }, process.env.JWT_SECRET, { expiresIn: "1d", }); user.password = undefined; res.json({ token, user }); } catch (err) { console.log(err); return res.status(400).send("Error. Try again."); } };
si la solución es enviar los datos desde el backend -> cliente, ¿cómo recibo los datos? En mi método de autenticación regular, tengo una función handleSubmit, pero el cliente no tiene un formulario para enviar para google oauth (es solo un enlace al formulario de google)
Gracias de antemano y disculpe si esto es un duplicado, no pude encontrar una pregunta que respondiera a todas estas preguntas juntas.