使用OAuth 2.0a API通过LinkedIn进行身份验证的Passport策略在保存用户

时间:2018-03-15 04:34:37

标签: node.js passport.js

无法在LinkedIn上检索用户电子邮件。我使用过passport-LinkedIn和OAuth 2.0。我可以插入用户名和图片。这是我试过的代码。

var LinkedIn = require('passport-linkedin-oauth2').Strategy;

module.exports = (passport, User) => {
    passport.use( new LinkedIn({
        clientID: '86ew637ipvirsa',
        clientSecret: 'HoEMfqCBGL9SxsIt',
        callbackURL: 'http://localhost:3000/auth/linkedin/callback'
        }, (accesstoken, refreshToken, profile, done) => {
        User.findOne({'linkedin.id': profile.id}, (err, x) => {
            if (x) return done(null, x);
            var user = {
                displayName: profile.displayName,
                image: profile._json.pictureUrl,
                email: profile.emailAddress,
                linkedin: {
                    id: profile.id
                }
            };
            User.create(user);
            User.create(user, (err, x) => done(null, x));
        });
    }));
};

1 个答案:

答案 0 :(得分:0)

您使用的npm包未正确记录。作者尚未明确说明如何从配置文件变量访问电子邮件字段。

您可以使用策略传递范围,并通过记录配置文件变量来获取电子邮件字段。

  <appSettings>
<add key="SmtpClientclientPath" value="myvalues" />
<add key="gmailHost" value="smtp.gmail.com" />
<add key="SmtpClientclientPathPort" value="25" />
<add key="password" value="pas$W0rd" />-->
<add key="userName" value="info@mysite.in" />
<add key="password" value="test@1232" />
 </appSettings>

您还可以使用其他package。在这里,您可以明确定义要访问的配置文件字段。