Я пытаюсь создать элемент в таблице mongoDB, который содержит URL-адрес "картинки" из профиля пользователя Google, который входит в мое приложение, используя passport-google-oauth20 .
Ниже приведена моя схема:
const userSchema = new mongoose.Schema ({
name: String,
picture: String,
googleId: String,
});
Ниже приведена стратегия Google:
passport.use(new GoogleStrategy({
clientID: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET,
callbackURL: "https://localhost:3000/auth/google/secrets",
userProfileURL: "https://www.googleapis.com/oauth2/v3/userinfo"
},
function(accessToken, refreshToken, profile, cb) {
console.log(profile);
console.log(profile._json.picture);
const customerEmail = profile._json.email;
User.findOrCreate(
{ googleId: profile.id },
{ name: profile.displayName },
{ picture: profile._json.picture },
function (err, user) {
return cb(err, user);
});
}
));
в моей таблице mon go она будет создавать элементы для "googleId" и «имя», но не будет создавать элемент для «изображения». и никаких сообщений об ошибках для этого.
однако интересно, что я могу console.log(profile._json.picture);
, и он действительно записывает строку (которая является URL - неуверен, если факт, что URL имеет какое-либо отношение к этому ??)
Есть идеи, что я здесь не так делаю? Я предполагаю, что это проблема на стороне MongoDB, так как строка URL возвращается в console.log.