无法在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));
});
}));
};
答案 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。在这里,您可以明确定义要访问的配置文件字段。