in api/services/protocols/local.js [26:84]
exports.register = function (req, res, next) {
var email = req.param('email')
, username = req.param('username')
, password = req.param('password');
if (!email) {
req.flash('error', 'Error.Passport.Email.Missing');
return next(new Error('No email was entered.'));
}
if (!username) {
req.flash('error', 'Error.Passport.Username.Missing');
return next(new Error('No username was entered.'));
}
if (!password) {
req.flash('error', 'Error.Passport.Password.Missing');
return next(new Error('No password was entered.'));
}
User.create({
username : username
, email : email
}, function (err, user) {
if (err) {
if (err.code === 'E_VALIDATION') {
if (err.invalidAttributes.email) {
req.flash('error', 'Error.Passport.Email.Exists');
} else {
req.flash('error', 'Error.Passport.User.Exists');
}
}
return next(err);
}
// Generating accessToken for API authentication
var token = crypto.randomBytes(48).toString('base64');
Passport.create({
protocol : 'local'
, password : password
, user : user.id
, accessToken : token
}, function (err, passport) {
if (err) {
if (err.code === 'E_VALIDATION') {
req.flash('error', 'Error.Passport.Password.Invalid');
}
return user.destroy(function (destroyErr) {
next(destroyErr || err);
});
}
next(null, user);
});
});
};