node home guide framework español ejemplos node.js facebook oauth passport.js facebook-oauth

node.js - home - node js guide



Pasaporte-Facebook no proporciona correo electrónico incluso si está dentro del alcance (2)

Desde el gráfico APIv2.4 de Facebook, debemos especificar explícitamente los campos para obtener.

Introduciendo Graph API v2.4

Entonces, podemos escribir como:

passport.use(new FacebookStrategy({ clientID: config.facebook.clientID, clientSecret: config.facebook.clientSecret, callbackURL: config.facebook.callbackURL, profileFields: [''id'', ''email'', ''gender'', ''link'', ''locale'', ''name'', ''timezone'', ''updated_time'', ''verified''], },

En mi solicitud, registro la estrategia de facebook de la siguiente manera: Pero el perfil devuelto no contiene el campo de correo electrónico ...

passport.use(new FacebookStrategy({ clientID: config.facebook.clientID, clientSecret: config.facebook.clientSecret, callbackURL: config.facebook.callbackURL, passReqToCallback: true }, function(req, accessToken, refreshToken, profile, done) { // No email in the following colsole.log console.log(JSON.stringify(profile)); }));

El obtener es el siguiente:

app.get(''/oauth/facebook'', passport.authenticate(''facebook'', { failureRedirect: ''/login'', scope:[''email''] }));

(Así que estoy usando el alcance como se dice aquí: Passport-Facebook no recibe correo electrónico )

En la página de inicio de sesión de FB, incluso pedí el correo electrónico y lo proporciono:

Cualquier ayuda es muy valiosa!


Usted tiene la parte de devolución de llamada del código, ¿verdad ?:

app.get(''/oauth/facebook/callback'', passport.authenticate(''facebook'', { failureRedirect: ''/login'', successRedirect: ''/'', scope:[''email''] }));

Y, sí, de hecho, esto debe hacerse con el scope:[''email''] , según las instrucciones de su enlace y este también aquí .