Как реализовать социальный вход с Node js - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть приложение с аутентификацией. Как реализовать аутентификацию с разных ресурсов, таких как Facebook и Google? У меня есть следующая схема

  const userSchema = new Schema({
  name: {
    type: String,
    required: [true, 'Name is required'],
    unique: true
  },
  email: {
    type: String,
    unique: true,
    trim: true,
    required: [true, 'Email address is required'],
    validate: [validateEmail, 'Please fill a valid email address'],
    match: [/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/, 'Please fill a valid email address']
  },
  password: {
    type: String,
    required: [true, 'Password is required']
  },
  authMethod: [{
    type: String,
    id: String,
    email: {
      required: [true, 'Email address is required']
    },
    name: String
  }],
  basket: {
    type: Array
  },
  selectedProducts: {
    type: Array
  },
  resetPasswordToken: String,
  resetPasswordExpire: Date,
  createdAt: {
    type: Date,
    default: Date.now
  }
});

Проблема в том, что я понятия не имею, как обрабатывать пользовательские данные из Facebook или Google. Прежде всего, когда пользователи регистрируются через стандартную форму, они вводят пароль, который сохраняет в БД. Но когда один и тот же пользователь входит в систему через некоторые из этих сервисов, пароль отсутствует. Как мне записать эти данные в БД? В общем, я не знаю, как должна выглядеть моя схема и как она должна обрабатывать различные случаи входа пользователя в систему

1 Ответ

1 голос
/ 28 февраля 2020
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...