使用passportjs显示Linkedin User的电子邮件地址

时间:2016-08-31 19:47:49

标签: node.js pug passport.js

我正在尝试检索email address, 'first-name', 'last-name', 'email-address','public-profile-url' and profile pic

然而,它没有显示出来。我的代码如下:

passport.use(new LinkedInStrategy({   
    consumerKey: LINKEDIN_API_KEY,
    consumerSecret: LINKEDIN_SECRET_KEY,
    callbackURL: "http://localhost:3000/auth/linkedin/callback",
    scope: ['r_emailaddress', 'r_basicprofile'],
    profileFields: ['id', 'first-name', 'last-name', 'email-address','public-profile-url'],    
    state: true    
    },
    function(token, refreshToken, profile, done) {
        console.log ("PROFILE "+profile.id, token, profile.displayName ,profile.emails[0].value);
        process.nextTick(function() {    
            return done(null,profile);                                
        });    
    })
);

前端位于JADE

if user
    | #{user.id}
    | #{user.r_emailaddress}
    a(href='/logout') logout with LinkedIn

注意:email address没有显示,也没有显示'first-name','last-name','email-address','public-profile-url'。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

似乎在代码的NodeJS后端端找到了所有内容。将#{user.r_emailaddress}替换为#{user.emails[0].value},即可向我提供该用户的主要电子邮件地址。