register bien

This commit is contained in:
David Arranz 2019-07-09 15:59:58 +02:00
parent af881ddf27
commit 2275b5b8d1
2 changed files with 30 additions and 49 deletions

View File

@ -5,15 +5,14 @@ const { Strategy: CustomStrategy } = require('passport-custom');
const models = require('./models'); const models = require('./models');
const securityHelper = require('../helpers/security.helper'); const securityHelper = require('../helpers/security.helper');
const authService = require('../modules/auth/auth.service');
/** /**
* Validación sobre firebase * Validación sobre firebase
*/ */
var admin = require('firebase-admin'); var firebase_admin = require('firebase-admin');
var serviceAccount = require('../firebase-key.json'); var serviceAccount = require('../firebase-key.json');
admin.initializeApp({ firebase_admin.initializeApp({
credential: admin.credential.cert(serviceAccount), credential: firebase_admin.credential.cert(serviceAccount),
databaseURL: "https://app-lqdvi-v2.firebaseio.com" databaseURL: "https://app-lqdvi-v2.firebaseio.com"
}); });
@ -69,36 +68,21 @@ const localPhoneOptions = {
passport.use('local-phone', new LocalStrategy(localPhoneOptions, async (phone, fbuid, done) => { passport.use('local-phone', new LocalStrategy(localPhoneOptions, async (phone, fbuid, done) => {
try { try {
console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><'); firebase_admin.auth().getUserByPhoneNumber(phone)
//Comprobamos si el usuario ya existe en nuestro sistema .then(function(userRecord) {
const user = await authService.extraMethods.findUser({ phone, fbuid }); if (userRecord && userRecord.toJSON().uid == fbuid) {
if (userRecord.toJSON().disabled)
if (_.isNull(user)) { return done(null, false, { message: 'User disabled in fb' })
admin.auth().getUserByPhoneNumber(phone) else
.then(function(userRecord) { return done(null, true, { message: 'Register user' });
console.log(userRecord.toJSON()); }
if (userRecord && userRecord.toJSON().uid == fbuid) { else
if (userRecord.toJSON().disabled) { return done(null, false, { message: 'User not validate in fb' });
console.log('aaaaa'); })
return done(null, false, { message: 'User disabled in fb' }); .catch(function (error) {
} //Servicio firebase caido o no funciona pero devuelvo el usuario
else { return done(null, user, error);
console.log('bbbbbb'); })
return done(null, true, { message: 'Register 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
return done(null, user, error);
})
} else {
//Usuario encontrado y validado
return done(null, user.toJSON(), { message: 'User found' });
}
} catch (error) { } catch (error) {
return done(null, false, error); return done(null, false, error);
} }

View File

@ -51,12 +51,13 @@ async function register(req, res, next) {
const values = { const values = {
phone: req.body.phone, phone: req.body.phone,
platform: req.body.fbuid fbuid: req.body.fbuid
}; };
const tokens = securityHelper.generateToken(values); const tokens = securityHelper.generateToken(values);
let newUser = req.user; //Comprobamos si el usuario ya existe en nuestro sistema
if (!req.user) { let newUser = await authService.extraMethods.findUser(values);
if (!newUser) {
try { try {
const data = { const data = {
refresh_token: tokens.refreshToken, refresh_token: tokens.refreshToken,
@ -68,24 +69,20 @@ async function register(req, res, next) {
entityid: req.body.entityid, entityid: req.body.entityid,
accessibility: req.body.accesssibility accessibility: req.body.accesssibility
}; };
console.log(data);
newUser = await authService.extraMethods.createUser(data); newUser = await authService.extraMethods.createUser(data);
newUser = cleanAdminData(newUser.toJSON());
newUser.token = tokens.token;
console.log(newUser);
return controllerHelper.handleResultResponse(newUser, null, req.params, res, httpStatus.OK);
} catch (error) { } catch (error) {
console.log(error); console.log(error);
controllerHelper.handleErrorResponse(MODULE_NAME, register.name, error, res); controllerHelper.handleErrorResponse(MODULE_NAME, register.name, error, res);
} }
} };
else {
newUser = cleanAdminData(newUser.toJSON()); newUser = cleanAdminData(newUser.toJSON());
newUser.token = tokens.token; newUser.token = tokens.token;
console.log(newUser); console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>');
return controllerHelper.handleResultResponse(req.user, null, req.params, res, httpStatus.OK); console.log(newUser);
} return controllerHelper.handleResultResponse(req.user, null, req.params, res, httpStatus.OK);
} }
async function regenerateToken(req, res, next) { async function regenerateToken(req, res, next) {