diff --git a/core/passport.js b/core/passport.js index 4dfd482..c0b18a8 100644 --- a/core/passport.js +++ b/core/passport.js @@ -101,23 +101,22 @@ passport.use('jwt', new CustomStrategy(async (req, done) => { const token = ((req && req.headers && req.headers['x-access-token']) ? req.headers['x-access-token'] : null); if (!token) { - return done(null, false, { message: 'Unauthorized'}); + return done(null, false, { message: 'Unauthorized. Token missing.'}); } const result = securityHelper.verify(token); + if (result) { - //recuperamos el usuario de la petición let user = await authService.extraMethods.findUser({ phone: result.phone}); if (user){ - user = user.toJSON(); return done(null, user, { message: 'Logged in Successfully' }); } else - return done(null, false, { message: 'Unauthorized' }); + return done(null, false, { message: 'Unauthorized. User not found.' }); } else { - return done(null, false, { message: 'Unauthorized' }); + return done(null, false, { message: 'Unauthorized. Invalid token.' }); } })); diff --git a/modules/auth/auth.controller.js b/modules/auth/auth.controller.js index b890e04..c24ccf8 100644 --- a/modules/auth/auth.controller.js +++ b/modules/auth/auth.controller.js @@ -53,14 +53,22 @@ async function login2(req, res, next) { async function loginWithPhone(req, res, next) { try { console.log(req.user); - const data = { + const findOptions = { phone: req.user.phoneNumber, fbuid: req.user.uid }; //Comprobamos si el usuario ya existe en nuestro sistema - let _user = await authService.extraMethods.findUser(data); - const tokens = securityHelper.generateToken(data); + let _user = await authService.extraMethods.findUser(findOptions); + + const tokenData = { + id: _user.id, + email: _user.email, + phone: _user.phone, + fbuid: _user.fbuid, + }; + const tokens = securityHelper.generateToken(tokenData); + _user.token = tokens.token; return controllerHelper.handleResultResponse(_user, null, req.params, res, httpStatus.OK); } catch (error) { @@ -109,7 +117,7 @@ async function register(req, res, next) { }; if (newUser) - newUser = cleanAdminData(newUser.toJSON()); + newUser = cleanAdminData(newUser); newUser.token = tokens.token; //console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'); diff --git a/modules/auth/auth.service.js b/modules/auth/auth.service.js index 4572f4f..78cf5b3 100644 --- a/modules/auth/auth.service.js +++ b/modules/auth/auth.service.js @@ -6,7 +6,8 @@ const extraMethods = { findUser: async (params, context) => { return await models.User.findOne({ - where: params + where: params, + raw: true, // <- para evitar tener que hacer .toJson al final }); },