mirror of
https://github.com/plankanban/planka.git
synced 2025-07-19 21:29:43 +02:00
49 lines
847 B
JavaScript
49 lines
847 B
JavaScript
|
const bcrypt = require('bcrypt');
|
||
|
|
||
|
const Errors = {
|
||
|
EMAIL_NOT_EXIST: {
|
||
|
unauthorized: 'Email does not exist'
|
||
|
},
|
||
|
PASSWORD_NOT_VALID: {
|
||
|
unauthorized: 'Password is not valid'
|
||
|
}
|
||
|
};
|
||
|
|
||
|
module.exports = {
|
||
|
inputs: {
|
||
|
email: {
|
||
|
type: 'string',
|
||
|
required: true,
|
||
|
isEmail: true
|
||
|
},
|
||
|
password: {
|
||
|
type: 'string',
|
||
|
required: true
|
||
|
}
|
||
|
},
|
||
|
|
||
|
exits: {
|
||
|
unauthorized: {
|
||
|
responseType: 'unauthorized'
|
||
|
}
|
||
|
},
|
||
|
|
||
|
fn: async function(inputs, exits) {
|
||
|
const user = await sails.helpers.getUser({
|
||
|
email: inputs.email.toLowerCase()
|
||
|
});
|
||
|
|
||
|
if (!user) {
|
||
|
throw Errors.EMAIL_NOT_EXIST;
|
||
|
}
|
||
|
|
||
|
if (!bcrypt.compareSync(inputs.password, user.password)) {
|
||
|
throw Errors.PASSWORD_NOT_VALID;
|
||
|
}
|
||
|
|
||
|
return exits.success({
|
||
|
item: sails.helpers.signToken(user.id)
|
||
|
});
|
||
|
}
|
||
|
};
|