У меня есть приложение с аутентификацией. Как реализовать аутентификацию с разных ресурсов, таких как 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. Прежде всего, когда пользователи регистрируются через стандартную форму, они вводят пароль, который сохраняет в БД. Но когда один и тот же пользователь входит в систему через некоторые из этих сервисов, пароль отсутствует. Как мне записать эти данные в БД? В общем, я не знаю, как должна выглядеть моя схема и как она должна обрабатывать различные случаи входа пользователя в систему