Что такое команда для доступа к моим данным пользователя в оболочке Mongo?

У меня, очевидно, есть пользователь в моей локальной копии моей базы данных MongoDB.

Я зашел в соответствующую базу данных через use server_users, но когда я делаю db.getUsers(), я получаю пустой массив.

Но когда я запускаю это в своем node REPL:

> Buffer.from(session, 'base64').toString('utf8')
'{"passport":{"user":"5ad25c401dfbaee22188a93b"}}'

Вы можете ясно видеть, что у меня есть пользователь в моей базе данных Mongo.

Как мне вызвать этого пользователя в моей оболочке 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);
    }
  )
);

Вы имеете в виду пользователей MongoDB, используемых для аутентификации в MongoDB, или коллекцию users, в которой хранятся учетные записи пользователей для приложения?

devshawn 08.04.2019 06:19

Судя по показанному содержанию, вопрос на самом деле означает "детали проверки подлинности паспорта, хранящиеся в коллекции", что, конечно же, НЕ имеет отношения к db.getUsers(), поскольку это относится к "Управление доступом и аутентификация MongoDB", который не является частью "пользователи приложения". Таким образом, данные содержатся в коллекции, которая была названа в настройках «паспорта» для приложения. Вы «получаете пользователей», просто нажимая find() на соответствующую коллекцию.

Neil Lunn 08.04.2019 09:56

@NeilLunn, спасибо, что освежил мою память. Я не пишу запросы оболочки Mongo так часто, как хотелось бы. Пожалуйста, напишите как ответ.

Daniel 09.04.2019 00:57
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
237
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Шаг 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" : "[email protected]",
    "password" : "$2a$10$Yu194aPMrwuA6JZStTwu7OmaAugFNM1XvXDDBVpF1d5wKKHaPmLFe",
    "__v" : 0
}
{
    "_id" : ObjectId("5ceee2237d1b22dfbf37820f"),
    "email" : "[email protected]",
    "password" : "$2a$10$.a9jWOSQbLG32lInCCUwGeqZDM9ksbTN7MDMo1kbOaApmMUr3cCLO",
    "__v" : 0
}
{
    "_id" : ObjectId("5ceeeb02d35e4ee61d602040"),
    "email" : "[email protected]",
    "password" : "$2a$10$fSq31UO/4IEPMaXzgIHXK.zlMO8IUPsVh4Vf9MRo7zldk9dSgiwVS",
    "__v" : 0
}
{
    "_id" : ObjectId("5ceeee0bd72c8ae85dcbbc7f"),
    "email" : "[email protected]",
    "password" : "$2a$10$l/99bU2MpElHhVFNXk1tB.k69DOAcdc/ySuek33MjtjAB0yLTqAqi",
    "__v" : 0
}
{
    "_id" : ObjectId("5ceef1cddf3064eaf8530f68"),
    "email" : "[email protected]",
    "password" : "$2a$10$aKzilNGIm9HZx0iSXhsvbe9UCFqNt5FWjVd7T.GX7uKawAfCyG3JS",
    "__v" : 0
}
{
    "_id" : ObjectId("5cef25fc43a429ec05759849"),
    "email" : "[email protected]",
    "password" : "$2a$10$JY0w/UuvT4Ub7T3RR9.VVOIH6V4RX9bTwoWzwEBbTiidPEiasakNq",
    "__v" : 0
}

Другие вопросы по теме