У меня, очевидно, есть пользователь в моей локальной копии базы данных MongoDB.
Я пошел в соответствующую базу данных через use server_users
, но когда я сделал db.getUsers()
, я получил пустой массив.
Но когда я запускаю это в моем node
REPL:
> Buffer.from(session, 'base64').toString('utf8')
'{"passport":{"user":"5ad25c401dfbaee22188a93b"}}'
Вы можете ясно видеть, что у меня есть пользователь в моей базе данных Mongo.
Как мне вызвать этого пользователя в моей оболочке Монго?
Это мой passport.js
файл:
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20').Strategy;
const mongoose = require('mongoose');
const keys = require('../config/keys');
const User = mongoose.model('users');
passport.serializeUser((user, done) => {
done(null, user.id);
});
passport.deserializeUser((id, done) => {
User.findById(id).then(user => {
done(null, user);
});
});
// passport.use() is a generic register to make Passport
// aware of new strategy
// creates a new instance to authenticate users
passport.use(
new GoogleStrategy(
{
clientID: keys.googleClientID,
clientSecret: keys.googleClientSecret,
callbackURL: '/auth/google/callback',
proxy: true
},
async (accessToken, refreshToken, profile, done) => {
const existingUser = await User.findOne({ googleId: profile.id });
if (existingUser) {
// we already have a record with given profile id
done(null, existingUser);
}
// we dont have a user record with this id, make a new record
const user = await new User({ googleId: profile.id }).save();
done(null, user);
}
)
);