citi-casher-session-engine
Version:
Module for multiple authentication methods for CITI Casher, deviceID and aurum
28 lines (23 loc) • 937 B
JavaScript
const device = (server, options) => {
return {
authenticate: async (request, h) => {
const { headers } = request;
const device = headers["device-id"];
console.log("Aurum schema strategy", device);
if (!device) {
throw Boom.unauthorized("Missing authentication");
}
// Aquí puedes añadir tu lógica de validación del token
// Por ejemplo, decodificar un JWT, buscar el token en la base de datos, etc.
//const isValid = validateToken(token); // Implementa esta función según tu lógica
const isValid = true;
if (!isValid) {
throw Boom.unauthorized("Invalid device");
}
// Si la validación es exitosa, continúa con el request
// Puedes adjuntar información al request.auth.credentials si es necesario
return h.authenticated({ credentials: { device } });
},
};
};
module.exports = device;