2017-02-15 8 views
1

я сделал все способы, которые описаны в Stackoverflow, но он не работаетпаспорт не предоставляет адрес электронной почты

passport.use(new FacebookStrategy({ 
    clientID: 'CLIENT ID', 
    clientSecret: 'CLIENT SECRET', 
    callbackURL: "/auth/facebook/callback", 
    profileFields:['id', 'emails', 'link', 'locale', 'name', 
    'timezone', 'updated_time', 'verified', 'displayName'] 
    }, 
    function(accessToken, refreshToken, profile, done) { 
    console.log(profile); 
    var authId = 'facebook:' + profile.id; 
    for(var i = 0; i < users.length; i++){ 
     var user = users[i]; 
     if(user.authId === authId){ 
     return done(null, user); 
     } 
    } 

    var new_user = { 
     'authId':authId, 
     'displayName':profile.displayName 
    }; 
    users.push(new_user); 
    done(null, new_user); 
    } 
)); 

и

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

, но в моей консоли

_json: 
    { id: 'MY ID', 
    link: 'https://www.facebook.com/app_scoped_user_id/MY_ID/', 
    locale: 'ko_KR', 
    last_name: 'LAST_NAME', 
    first_name: 'FIRST_NAME', 
    timezone: 9, 
    updated_time: '2016-06-26T06:25:28+0000', 
    verified: true, 
    name: 'MY NAME' } } 

нет почтовых полей, что является проблемой? или есть ли какие-либо проблемы в моей учетной записи на facebook?

ответ

0

в profileFields object, используйте 'email' вместо 'email.

profileFields:['id', 'emails', 'link', 'locale', 'name', 
    'timezone', 'updated_time', 'verified', 'displayName'] 

заменить

profileFields:['id', 'email', 'link', 'locale', 'name', 
    'timezone', 'updated_time', 'verified', 'displayName'] 
+0

спасибо за Ваш комментарий! но он не работает ... :(Не знаю, почему ... !! Аналогичная ситуация –

+0

Я пробовал то же самое, и он работал, не знаю, что там там –

+0

Я думаю, что есть некоторые проблемы в моей учетной записи facebook авторизация, я проверю его. Спасибо за ваш комментарий :) –

0

Попробуйте это:

passport.use(new FacebookStrategy({ 
    clientID: 'CLIENT ID', 
    clientSecret: 'CLIENT SECRET', 
    callbackURL: "/auth/facebook/callback", 
    profileFields:['id', 'emails', 'link', 'locale', 'name', 
    'timezone', 'updated_time', 'verified', 'displayName'] 
    }, 
    function(accessToken, refreshToken, profile, done) { 
    console.log(profile.emails[0].value); 
    var authId = 'facebook:' + profile.id; 
    for(var i = 0; i < users.length; i++){ 
     var user = users[i]; 
     if(user.authId === authId){ 
     return done(null, user); 
     } 
    } 

    var new_user = { 
     'authId':authId, 
     'displayName':profile.displayName 
    }; 
    users.push(new_user); 
    done(null, new_user); 
    } 
)); 

и

app.get(
    '/auth/facebook', 
    passport.authenticate(
    'facebook', 
    {scope:['public_profile', 'email']} 
    ) 
);