Require valid login credentials before verified email check.
- strongloop/loopback#931.
This commit is contained in:
parent
2368eb569a
commit
dc055e5559
|
@ -183,20 +183,18 @@ module.exports = function(User) {
|
||||||
debug('An error is reported from User.findOne: %j', err);
|
debug('An error is reported from User.findOne: %j', err);
|
||||||
fn(defaultError);
|
fn(defaultError);
|
||||||
} else if (user) {
|
} else if (user) {
|
||||||
if (self.settings.emailVerificationRequired) {
|
|
||||||
if (!user.emailVerified) {
|
|
||||||
// Fail to log in if email verification is not done yet
|
|
||||||
debug('User email has not been verified');
|
|
||||||
err = new Error('login failed as the email has not been verified');
|
|
||||||
err.statusCode = 401;
|
|
||||||
return fn(err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
user.hasPassword(credentials.password, function(err, isMatch) {
|
user.hasPassword(credentials.password, function(err, isMatch) {
|
||||||
if (err) {
|
if (err) {
|
||||||
debug('An error is reported from User.hasPassword: %j', err);
|
debug('An error is reported from User.hasPassword: %j', err);
|
||||||
fn(defaultError);
|
fn(defaultError);
|
||||||
} else if (isMatch) {
|
} else if (isMatch) {
|
||||||
|
if (self.settings.emailVerificationRequired && !user.emailVerified) {
|
||||||
|
// Fail to log in if email verification is not done yet
|
||||||
|
debug('User email has not been verified');
|
||||||
|
err = new Error('login failed as the email has not been verified');
|
||||||
|
err.statusCode = 401;
|
||||||
|
return fn(err);
|
||||||
|
} else {
|
||||||
user.createAccessToken(credentials.ttl, function(err, token) {
|
user.createAccessToken(credentials.ttl, function(err, token) {
|
||||||
if (err) return fn(err);
|
if (err) return fn(err);
|
||||||
if (Array.isArray(include) ? include.indexOf('user') !== -1 : include === 'user') {
|
if (Array.isArray(include) ? include.indexOf('user') !== -1 : include === 'user') {
|
||||||
|
@ -210,6 +208,7 @@ module.exports = function(User) {
|
||||||
}
|
}
|
||||||
fn(err, token);
|
fn(err, token);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
debug('The password is invalid for user %s', query.email || query.username);
|
debug('The password is invalid for user %s', query.email || query.username);
|
||||||
fn(defaultError);
|
fn(defaultError);
|
||||||
|
|
Loading…
Reference in New Issue