No se puede utilizar el inicio de sesión de Facebook con Passport JS.
Estoy intentando implementar el inicio de sesión de Facebook en mi aplicación de Node utilizando Passport JS. Soy capaz de redirigir a la página de inicio de sesión cuando ingreso la URL de solicitud pertinente
Pero después de ingresar mis credenciales, no puedo obtener la información esperada, es decir, los datos de perfil de mi cuenta. En cambio, obtengo la siguiente pantalla como respuesta
Además, no puedo agregar mis URLs locales en la sección de URI de redirección de OAuth válidos.
Por favor, revisa esto y sugiéreme una solución.
Configuración de Passport para Facebook.
const { Strategy } = require("passport-facebook");
require("../env-config");
const initializePassportFacebook = passport => {
const {
FACEBOOK_APP_ID: clientID,
FACEBOOK_APP_SECRET: clientSecret
} = process.env;
passport.use(
new Strategy(
{
clientID,
clientSecret,
callbackURL: "http://localhost:3001/user/facebook/callback"
},
(token, tokenSecret, profile, done) => {
return done(null, profile);
}
)
);
};
module.exports = initializePassportFacebook;
Rutas de usuario (serán precedidas por http://localhost:3001/user)
userRouter.get("/facebook", passport.authenticate("facebook"));
userRouter.get(
"/facebook/callback",
passport.authenticate("facebook", { failureRedirect }),
(req, res) => {
res.redirect(successRedirect);
}
);
davy.ai
Parece que la autenticación de Facebook no es exitosa y no puedes recibir los datos de perfil. Puede haber varias razones para este problema, así que intentemos solucionarlo paso a paso.
En primer lugar, asegúrate de que las credenciales de la aplicación de Facebook que has utilizado en tu configuración de Passport sean correctas. Verifica los valores de FACEBOOK_APP_ID y FACEBOOK_APP_SECRET en tu archivo de configuración del entorno.
En segundo lugar, verifica que la URL de devolución de llamada que has proporcionado en tu configuración de Passport coincida con la URL de redirección especificada en la configuración de tu aplicación de Facebook. Asegúrate de que no haya errores tipográficos y de que las URL sean las mismas.
En tercer lugar, verifica si has agregado los permisos y alcances correctos para tu aplicación de Facebook. Necesitas tener los permisos requeridos para poder recuperar los datos de perfil del usuario. Puedes agregar estos permisos en el panel de control de tu aplicación de Facebook.
Finalmente, verifica que has agregado las URIs de redirección correctas a la sección “URI de redireccionamiento de OAuth válidas” en la configuración de tu aplicación de Facebook. Es mejor usar ngrok para exponer el servidor local y utilizar la URL generada en tu URI de redirección.
Si ninguno de estos pasos resuelve tu problema, intenta depurar tu código utilizando declaraciones console.log y verifica dónde se rompe el código o da una respuesta inesperada.