Adaptación a versión APP 1.5.0 para dejar de usar Google Firebase

This commit is contained in:
David Arranz 2024-09-11 10:11:51 +02:00
parent c3c57cf188
commit a3774d9beb

View File

@ -47,10 +47,7 @@ passport.use(
if (_.isNull(user)) { if (_.isNull(user)) {
return done(null, false, { message: "User not found" }); return done(null, false, { message: "User not found" });
} else { } else {
var password_encoded = crypto var password_encoded = crypto.createHash("sha512").update(password).digest("hex");
.createHash("sha512")
.update(password)
.digest("hex");
const isPasswordValid = await user.comparePassword(password_encoded); const isPasswordValid = await user.comparePassword(password_encoded);
if (!isPasswordValid) { if (!isPasswordValid) {
return done(null, false, { message: "Wrong Password" }); return done(null, false, { message: "Wrong Password" });
@ -76,6 +73,52 @@ const localPhoneOptions = {
passport.use( passport.use(
"local-phone", "local-phone",
new LocalStrategy(localPhoneOptions, async (phone, fbuid, done) => {
try {
console.log("PASSPORT - local-phone-w/o-google");
firebase_admin
.auth()
.getUserByPhoneNumber(phone)
.then(function (userRecord) {
if (userRecord && userRecord.toJSON().uid == fbuid) {
if (userRecord.toJSON().disabled) return done(null, false, { message: "User disabled in fb" });
else
return done(null, userRecord.toJSON(), {
message: "Register user in FB",
});
} else {
// Esto es para la versión de la APP 1.5.0 (sin Google Firebase)
if (phone === fbuid) {
const user = {
phone,
phoneNumber: phone,
uid: fbuid,
fbuid,
};
return done(null, user, { message: "Registered user" });
} else {
return done(null, false, { message: "User not validate in fb" });
}
}
})
.catch(function (error) {
//Servicio firebase caido o no funciona pero devuelvo el usuario
const user = {
phone: phone,
phoneNumber: phone,
uid: fbuid,
fbuid: fbuid,
};
return done(null, user, error);
});
} catch (error) {
return done(error);
}
})
);
passport.use(
"local-phone-firebase",
new LocalStrategy(localPhoneOptions, async (phone, fbuid, done) => { new LocalStrategy(localPhoneOptions, async (phone, fbuid, done) => {
try { try {
console.log("PASSPORT - local-phone"); console.log("PASSPORT - local-phone");
@ -84,8 +127,7 @@ passport.use(
.getUserByPhoneNumber(phone) .getUserByPhoneNumber(phone)
.then(function (userRecord) { .then(function (userRecord) {
if (userRecord && userRecord.toJSON().uid == fbuid) { if (userRecord && userRecord.toJSON().uid == fbuid) {
if (userRecord.toJSON().disabled) if (userRecord.toJSON().disabled) return done(null, false, { message: "User disabled in fb" });
return done(null, false, { message: "User disabled in fb" });
else else
return done(null, userRecord.toJSON(), { return done(null, userRecord.toJSON(), {
message: "Register user", message: "Register user",
@ -107,14 +149,12 @@ passport.use(
); );
/** /**
* *
*/ */
passport.use("api-key", passport.use(
"api-key",
new CustomStrategy(async (req, done) => { new CustomStrategy(async (req, done) => {
const token = const token = req && req.headers && req.headers["x-access-key"] ? req.headers["x-access-key"] : null;
req && req.headers && req.headers["x-access-key"]
? req.headers["x-access-key"]
: null;
if (!token) { if (!token) {
console.error("Unauthorized. API KEY missing."); console.error("Unauthorized. API KEY missing.");
@ -123,7 +163,7 @@ passport.use("api-key",
const result = securityHelper.verify(token); const result = securityHelper.verify(token);
if (result) { if (result) {
console.log('Valid API KEY'); console.log("Valid API KEY");
return done(null, {}, { message: "Valid API KEY" }); return done(null, {}, { message: "Valid API KEY" });
} else { } else {
//console.log('Token no válido'); //console.log('Token no válido');
@ -137,14 +177,8 @@ passport.use("api-key",
passport.use( passport.use(
"jwt", "jwt",
new CustomStrategy(async (req, done) => { new CustomStrategy(async (req, done) => {
const token = const token = req && req.headers && req.headers["x-access-token"] ? req.headers["x-access-token"] : null;
req && req.headers && req.headers["x-access-token"] const appVersion = req && req.headers && req.headers["accept-version"] ? req.headers["accept-version"] : null;
? req.headers["x-access-token"]
: null;
const appVersion =
req && req.headers && req.headers["accept-version"]
? req.headers["accept-version"]
: null;
console.log("appVersion: ", appVersion); console.log("appVersion: ", appVersion);
if (!token) { if (!token) {
@ -160,10 +194,7 @@ passport.use(
let user = await authService.extraMethods.findUser({ id: result.id }); let user = await authService.extraMethods.findUser({ id: result.id });
if (user) { if (user) {
user = user.toJSON(); user = user.toJSON();
userService._updateLastLoginAndVersionUser( userService._updateLastLoginAndVersionUser(user.id, appVersion);
user.id,
appVersion
);
user.app_version = appVersion; user.app_version = appVersion;
user.token = token; user.token = token;
delete user.password; delete user.password;