Я использую Node.js, MongoDB с Пн goose и использую паспорт. js для аутентификации.
Вот моя схема пользователя:
const userSchema = new mongoose.Schema({
email: String,
password: String,
googleId: String,
facebookId: String,
profilePic: String,
fName: String,
lName: String
});
И мой Стратегия Google:
passport.use(
new GoogleStrategy(
{
clientID: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET,
callbackURL: "http://localhost:3000/auth/google/dashboard",
profileFields: ["id", "displayName", "photos", "email"]
},
function(accessToken, refreshToken, profile, cb) {
console.log(profile);
console.log(profile.photos[0].value);
User.findOrCreate(
{ googleId: profile.id },
{ profilePic: profile.photos[0].value },
{ email: profile.emails[0].value },
function(err, user) {
return cb(err, user);
}
);
}
)
);
Когда я console.log
показываю свой результат, я вижу свой профиль вместе с URL-адресом фотографии профиля и адресом электронной почты профиля, но не могу увидеть свой идентификатор электронной почты. Создаются только 4 поля:
_id
googleId
profilePic
_v
Может кто-нибудь сказать мне, как получить поле электронной почты, чтобы сохранить?