Что такое команда для доступа к моим данным пользователя в оболочке Mongo? - PullRequest
0 голосов
/ 08 апреля 2019

У меня, очевидно, есть пользователь в моей локальной копии базы данных 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);
    }
  )
);

1 Ответ

0 голосов
/ 30 мая 2019

Шаг 1

> show dbs
    admin         0.000GB
    auth          0.000GB
    local         0.000GB
    muber         0.000GB
    seed_data     0.000GB
    server_users  0.000GB
    upstar_music  0.004GB
    users_test    0.000GB

Шаг 2

> use auth
switched to db auth

Шаг 3

> db.getCollection('users').find({}).pretty()
{
    "_id" : ObjectId("5cedf41999c20922fd05cdce"),
    "email" : "test123@example.com",
    "password" : "$2a$10$Yu194aPMrwuA6JZStTwu7OmaAugFNM1XvXDDBVpF1d5wKKHaPmLFe",
    "__v" : 0
}
{
    "_id" : ObjectId("5ceee2237d1b22dfbf37820f"),
    "email" : "test99@example.com",
    "password" : "$2a$10$.a9jWOSQbLG32lInCCUwGeqZDM9ksbTN7MDMo1kbOaApmMUr3cCLO",
    "__v" : 0
}
{
    "_id" : ObjectId("5ceeeb02d35e4ee61d602040"),
    "email" : "test919@example.com",
    "password" : "$2a$10$fSq31UO/4IEPMaXzgIHXK.zlMO8IUPsVh4Vf9MRo7zldk9dSgiwVS",
    "__v" : 0
}
{
    "_id" : ObjectId("5ceeee0bd72c8ae85dcbbc7f"),
    "email" : "test900@example.com",
    "password" : "$2a$10$l/99bU2MpElHhVFNXk1tB.k69DOAcdc/ySuek33MjtjAB0yLTqAqi",
    "__v" : 0
}
{
    "_id" : ObjectId("5ceef1cddf3064eaf8530f68"),
    "email" : "test901@example.com",
    "password" : "$2a$10$aKzilNGIm9HZx0iSXhsvbe9UCFqNt5FWjVd7T.GX7uKawAfCyG3JS",
    "__v" : 0
}
{
    "_id" : ObjectId("5cef25fc43a429ec05759849"),
    "email" : "test902@example.com",
    "password" : "$2a$10$JY0w/UuvT4Ub7T3RR9.VVOIH6V4RX9bTwoWzwEBbTiidPEiasakNq",
    "__v" : 0
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...