При регистрации пользователю в mongo пишется 2 поля:
confirm_code: "SHA512 hash" и confirmed: false
После того, как он переходит по ссылке подтверждения поле confirmed меняется на true.
РЕАЛЬНО МЕНЯЕТСЯ! Я вижу в консоли результат - ОНО
TRUE!
Теперь при авторизации проверяем это поле и если оно не true, а ОНО
TRUE, то не пускаем на сайт. Но это поле возвращается как undefined. Привожу отрывок кода:
User
.getUser({
email: authObj.email,
password: _password
},
function (err, user) {
if (err) {
console.log(err);
}
if (!user) {
errors.push("Неверный Email или пароль!");
return res.status(400).json({
error: true,
messages: errors
});
}
console.log("CONFIRMED:", user.confirmed); // <- undefined, а в БД оно TRUE
//#TODO:FIXME
if (!user.confirmed) {
errors.push("Не подтвержденный Email! Перейдите по ссылке в письме для подтверждения Email.");
return res.status(403).json({
error: true,
messages: errors
});
}
else {
// ... здесь пишем в сессию и т. д. Короче авторизация юзера. Но до этого места не срабатывает.
Что за фигня?