Borrado de un usuario, API KEY
This commit is contained in:
parent
d068c0443c
commit
c143ee25ba
@ -106,6 +106,33 @@ passport.use(
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
passport.use("api-key",
|
||||||
|
new CustomStrategy(async (req, done) => {
|
||||||
|
const token =
|
||||||
|
req && req.headers && req.headers["x-access-key"]
|
||||||
|
? req.headers["x-access-key"]
|
||||||
|
: null;
|
||||||
|
|
||||||
|
if (!token) {
|
||||||
|
console.error("Unauthorized. API KEY missing.");
|
||||||
|
return done(null, false, { message: "Unauthorized. API KEY missing." });
|
||||||
|
}
|
||||||
|
|
||||||
|
const result = securityHelper.verify(token);
|
||||||
|
if (result) {
|
||||||
|
console.log('Valid API KEY');
|
||||||
|
return done(null, {}, { message: "Valid API KEY" });
|
||||||
|
} else {
|
||||||
|
//console.log('Token no válido');
|
||||||
|
console.error("Unauthorized. Invalid token.");
|
||||||
|
return done(null, false, { message: "Unauthorized. Invalid API KEY." });
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
// JWT
|
// JWT
|
||||||
passport.use(
|
passport.use(
|
||||||
"jwt",
|
"jwt",
|
||||||
|
|||||||
@ -115,7 +115,11 @@ module.exports = {
|
|||||||
return _sign(payload, signOptions);
|
return _sign(payload, signOptions);
|
||||||
},
|
},
|
||||||
|
|
||||||
verify: (token) => {
|
verify: (tokenOrKey) => {
|
||||||
return _verify(token, signOptions);
|
if (tokenOrKey === 'AKlqdviapp-xcCJs5BfYCzHSIWKpLL1JY5Ypl3HCKHNKhXhAHVYGb2uL9YMJzNprKaTLCzcGcVUQgN6RBh3taBlnaxAhv1pQdmzyxmtAIIBzxYvVy8OusNQmRrsv95tf') {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return _verify(tokenOrKey, signOptions);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -7,6 +7,8 @@ const compose = require('../helpers/middleware.helper');
|
|||||||
const isRegisteredUserEmail = passport.authenticate('local-email', { session: false });
|
const isRegisteredUserEmail = passport.authenticate('local-email', { session: false });
|
||||||
const isRegisteredUserPhone = passport.authenticate('local-phone', { session: false });
|
const isRegisteredUserPhone = passport.authenticate('local-phone', { session: false });
|
||||||
const isLoggedUser = passport.authenticate('jwt', { session: false });
|
const isLoggedUser = passport.authenticate('jwt', { session: false });
|
||||||
|
const isAPIKeyUser = passport.authenticate('api-key', { session: false });
|
||||||
|
|
||||||
const isOptionalUser = (req, res, next) => {
|
const isOptionalUser = (req, res, next) => {
|
||||||
const token = ((req && req.headers && req.headers['x-access-token']) ? req.headers['x-access-token'] : null);
|
const token = ((req && req.headers && req.headers['x-access-token']) ? req.headers['x-access-token'] : null);
|
||||||
if (token) {
|
if (token) {
|
||||||
@ -32,5 +34,6 @@ module.exports = {
|
|||||||
isRegisteredUserPhone,
|
isRegisteredUserPhone,
|
||||||
isLoggedUser,
|
isLoggedUser,
|
||||||
isOptionalUser,
|
isOptionalUser,
|
||||||
isAdministratorUser
|
isAdministratorUser,
|
||||||
|
isAPIKeyUser
|
||||||
};
|
};
|
||||||
@ -536,11 +536,11 @@ async function deleteUser(req, res, next) {
|
|||||||
try {
|
try {
|
||||||
const userDTO = marketingService.userToMarktingDTO(dataUser);
|
const userDTO = marketingService.userToMarktingDTO(dataUser);
|
||||||
marketing.deleteMemberByEmail(userDTO.email);
|
marketing.deleteMemberByEmail(userDTO.email);
|
||||||
} catch (err) {
|
} catch (error) {
|
||||||
console.error(err);
|
console.error(error);
|
||||||
|
return controllerHelper.handleErrorResponse(MODULE_NAME, "deleteUser", error, res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return controllerHelper.handleResultResponse(resultCount, resultCount, params, res, httpStatus.OK);
|
return controllerHelper.handleResultResponse(resultCount, resultCount, params, res, httpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -66,7 +66,7 @@ routes.get(
|
|||||||
routes.post(
|
routes.post(
|
||||||
"/deleteAccount",
|
"/deleteAccount",
|
||||||
SchemaValidator(authValidation.RequestDeleteAccount, true),
|
SchemaValidator(authValidation.RequestDeleteAccount, true),
|
||||||
//AccessValidator.isAPIKeyUser,
|
AccessValidator.isAPIKeyUser,
|
||||||
commentController.deleteCommentsByUser,
|
commentController.deleteCommentsByUser,
|
||||||
events_questionsController.deleteQuestionsByUser,
|
events_questionsController.deleteQuestionsByUser,
|
||||||
events_inscriptionsController.deleteInscriptionsByUser,
|
events_inscriptionsController.deleteInscriptionsByUser,
|
||||||
|
|||||||
@ -61,12 +61,12 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
model: sequelize.models.SpeakerType,
|
model: sequelize.models.SpeakerType,
|
||||||
as: 'type'
|
as: 'type'
|
||||||
},
|
},
|
||||||
/* {
|
/* {
|
||||||
model: sequelize.models.Value,
|
model: sequelize.models.Value,
|
||||||
as: 'values',
|
as: 'values',
|
||||||
required: false,
|
required: false,
|
||||||
},
|
},
|
||||||
*/
|
*/
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@ -84,8 +84,8 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
Speaker.EventDetails = Speaker.hasMany(models.EventDetail, { foreignKey: 'speakerId', as: "eventdetails" });
|
Speaker.EventDetails = Speaker.hasMany(models.EventDetail, { foreignKey: 'speakerId', as: "eventdetails" });
|
||||||
Speaker.Questions = Speaker.hasMany(models.EventQuestion, { foreignKey: 'speakerId', as: "questions", required: false, });
|
Speaker.Questions = Speaker.hasMany(models.EventQuestion, { foreignKey: 'speakerId', as: "questions", required: false, });
|
||||||
|
|
||||||
//OJO antes de force comentar
|
//OJO antes de force comentar
|
||||||
// OJO GENERA UN FOREIGN KEY Con eventos y habrá ID de otras entidades que no exitan en la tabla eventos, porque son post o speakers
|
// OJO GENERA UN FOREIGN KEY Con eventos y habrá ID de otras entidades que no exitan en la tabla eventos, porque son post o speakers
|
||||||
Speaker.Multimedias = Speaker.hasMany(models.Multimedia, {
|
Speaker.Multimedias = Speaker.hasMany(models.Multimedia, {
|
||||||
foreignKey: 'entityId',
|
foreignKey: 'entityId',
|
||||||
as: { singular: 'multimedia', plural: 'multimedias' },
|
as: { singular: 'multimedia', plural: 'multimedias' },
|
||||||
@ -126,7 +126,7 @@ module.exports = function (sequelize, DataTypes) {
|
|||||||
include: [{
|
include: [{
|
||||||
model: sequelize.models.MultimediaFile,
|
model: sequelize.models.MultimediaFile,
|
||||||
as: "multimediaFile",
|
as: "multimediaFile",
|
||||||
order: [['createdAt', 'DESC']],
|
order: [['createdAt', 'DESC']], // <- esto no funciona por ahora en Sequelize
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "lqdvi-api3",
|
"name": "lqdvi-api3",
|
||||||
"version": "1.3.4",
|
"version": "1.3.5",
|
||||||
"description": "",
|
"description": "",
|
||||||
"author": "Rodax Software",
|
"author": "Rodax Software",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user