var html = "<b>Bold text</b>";
User
.getUser({
email: authObj.email,
password: _password
},
function (err, user) {
if (err) {
errors.push("Ошибка получения данных!");
return res.status(500).json({
error: true,
messages: errors
});
}
if (!user) {
errors.push("Неверный Email или пароль!");
return res.status(400).json({
error: true,
messages: errors
});
}
if (user.confirmed === false) {
errors.push("Не подтвержденный Email! Перейдите по ссылке в письме для подтверждения Email.");
return res.status(403).json({
error: true,
messages: errors
});
}
else {
// Я думаю ошибка тут, так как записи в сессию не происходит
req.session.user_id = user._id;
req.session.admin = user.role > 0;
req.session.user_agent = req.header('user-agent');
req.session.ip = req.userParams.ip;
req.session.infoUA = req.userParams.userAgent;
request(config.get('ip_api_url') + '/' + req.userParams.ip, function (error, response, body) {
if (!error && response.statusCode == 200) {
var _body = JSON.parse(body);
if(_body.status !== 'fail'){
req.session.ip_info = _body;
}
else{
req.session.ip_info = {};
}
}
var notify = new Notify({
userID: user._id,
type: 'success',
text: "Выполнен вход в личный кабинет! IP адрес: " + req.userParams.ip
});
notify.save(function(err, message){
return res.status(200).json({
message: "Авторизация прошла успешно!",
user: user
});
});
});
}
});
var UserSchema = new Schema({
// Email пользователя
email: {
type: String,
required: true,
unique: true,
validate: {
validator: function(v) {
return /[a-zA-Z\d\.\-\_\+]+\@[a-zA-Z\d\.\-\+]+\.[a-zA-Z]{2,6}/.test(v);
},
message: "Неверный формат Email!"
}
},
// хэш пароля пользователя
password: {
type: String,
required: true
},
// код подтверждения регистрации
confirm_code: {
type: String,
required: false
},
// флаг подтверждения Email
confirmed: {
type: Boolean,
default: false
},
// уровень доступа
role: {
type: Number,
min: 0,
max: 1,
default: 0
},
// дата и время регистрации
regdate: {
type: Date,
default: Date.now
},
// дата и время последнего посещения
lastlogin: {
type: Date,
default: Date.now
}
});