gift-card-server/middleware/auth-check.js
Rodrigo Pedroso 3ac017a5ad Commit project
2019-06-19 10:46:14 -04:00

65 lines
1.4 KiB
JavaScript

'use strict';
const Merchant = require('mongoose').model('Merchant');
const config = require('../etc');
const atob = require('abab').atob;
const Response = require('../etc/responses.json');
module.exports = (req, res, next) => {
var lang;
if (req.query.language) {
lang = req.query.language;
}
else if (req.body.language) {
lang = req.body.language;
}
else {
req.body.language = 'en';
}
if (!req.headers.authorization) {
return res.status(401).json({
success: false,
message: Response.r81[lang],
error_code: 'e51'
})
}
const decoded = atob(req.headers.authorization.split(/ /)[1]);
const userId = decoded.split(/:/)[0];
const pwd = decoded.split(/:/)[1];
return Merchant.findById(userId, (userErr, user) => {
// Check user id
if (userErr || !user) {
return res.status(401).json({
success: false,
message: 'UserId ' + userId + Response.r82[lang]
});
}
// Check password
return user.comparePassword(pwd, (pwdErr, isMatch) => {
if (pwdErr) {
return done(pwdErr);
}
if (!isMatch) {
return res.status(401).json({
success: false,
message: Response.r83[lang]
})
}
if (!req.body.merchant_id) {
req.body.merchant_id = userId;
}
else {
console.log('Merchant déjà');
}
return next();
})
});
};