2015-12-23 1 views
0

Я использую учетные данные-пароль и Meteor.loginWithPassword для аутентификации пользователя. Я хочу, чтобы пользователь не мог войти в систему, если адрес электронной почты не подтвержден.Meteor.loginWithPassword: Изменить проверку

В настоящее время я делаю это с использованием Meteor.method и обратного вызова. Обратный вызов вызовет только вызов Meteor.loginWithPassword(), если соответствующий пользователь имеет подтвержденный адрес электронной почты и запускает текущую форму для отображения ошибки проверки. если не. Однако технический специалист может по-прежнему запускать Meteor.loginWithPassword() непосредственно в консоли. Есть ли лучший способ предотвратить это?

ответ

2

Вы можете запретить логины для пользователей с адресом электронной почты, который не был проверен с помощью accountsServer.validateLoginAttempt(func), например:

if (Meteor.isServer) { 
    Accounts.validateLoginAttempt(function(attempt) { 
    var user = attempt.user; 
    if (!user.emails[0].verified) throw new Meteor.Error(403, 'E-Mail address not verified.'); 
    return true; 
    }); 
} 

Если вы возвращаете false или выбросить исключение, Логин будет прервана.

+0

Его лучше добавить этот код в директорию 'server' и нет в клиенте и обернуть его под' if (Meteor.isServer) {' – Jay

Смежные вопросы