Как должна выглядеть модель юзера при нескольких методах авторизации?

Нужно добавить на проект 2 метода авторизации, но я не могу понять как при этом должна выглядеть модель юзера. На данный момент тип авторизации логин/пароль, так же добавлю fb, tg.

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

const UserSchema = new mongoose.Schema({
    username: { type: String, unique: true, required: false },
    password: { type: String, required: false },
    method: { type: String, required: true }, // Тут я планировал записывать какой метод авторизации использует юзер. Local/FB/TG
    roles: { type: Array, default: ['user'] }
}, {
    timestamps: true,
});

Правильно ли я понимаю, что в моем случае модель должна выглядеть примерно следующим образом?

const UserSchema = new mongoose.Schema({
    username: { type: String, unique: true, required: false },
    displayName: { type: String, required: true },
    password: { type: String, required: false },
    socialId: { type: Number, required: false },
    method: { type: String, required: true },
    roles: { type: Array, default: ['user'] }
}, {
    timestamps: true,
});

При локальной авторизации через логин пароль я беру username, при авторизации через соц. сети я беру id + type. Либо же делать запись в socialId {socialId: 'fb_43342'}, {socialId: 'tg_943'}, для метода логин-пароль поле socialId пустое. В правильном направлении мыслю?


Ответы (0 шт):