userSchema, которая обрабатывает несколько стратегий аутентификации PassportJS - PullRequest
0 голосов
/ 02 октября 2019

Я строю систему аутентификации с использованием Express, PassportJS и MongoDB, которая будет использовать 2 стратегии аутентификации:

  1. O365
  2. Локальная (JWT) аутентификация

Ключевая часть, с которой у меня возникают проблемы, - это управление различными типами учетных записей. Пользователи, прошедшие проверку подлинности с помощью O365, не нуждаются в пароле и не могут войти в систему с использованием локальной проверки подлинности.

My userSchema в настоящее время выглядит следующим образом:

const userSchema = new mongoose.Schema({
    username: { type: String, required: true, lowercase: true, index: true }, // Depending on the user type it can be tomd (for local auth) or tomd@example.com.au for O365
    hash: { type: String, required: false },
    salt: { type: String, required: false },
    firstname: String,
    lastname: String,
    image: String,
    lastLoggedIn: Date,
    services: Array,
    userType: String, // Local or O365
    activationCode: String,
    activationConfirmed: { type: Boolean, default: false },
    isActive: { type: Boolean, default: true }, // Handles disabling accounts
    deleted: { type: Boolean, default: false } // Handles removing users
}, {timestamps: true});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...