.
This commit is contained in:
parent
c129a4f35c
commit
d964ba3264
@ -46,10 +46,7 @@ passport.use('local-email', new LocalStrategy(localEmailOptions, async (email, p
|
|||||||
return done(null, false, { message: 'User not found' })
|
return done(null, false, { message: 'User not found' })
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
console.log('aaaaaaaaaaaaaaaaaaa1');
|
|
||||||
var password_encoded = crypto.createHash('sha512').update(password).digest('hex');
|
var password_encoded = crypto.createHash('sha512').update(password).digest('hex');
|
||||||
console.log('aaaaaaaaaaaaaaaaaaa2');
|
|
||||||
console.log(password_encoded);
|
|
||||||
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' })
|
||||||
@ -80,13 +77,17 @@ passport.use('local-phone', new LocalStrategy(localPhoneOptions, async (phone, f
|
|||||||
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, true, { message: 'Register user' });
|
return done(null, userRecord.toJSON(), { message: 'Register user' });
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return done(null, false, { message: 'User not validate in fb' });
|
return done(null, false, { message: 'User not validate in fb' });
|
||||||
})
|
})
|
||||||
.catch(function (error) {
|
.catch(function (error) {
|
||||||
//Servicio firebase caido o no funciona pero devuelvo el usuario
|
//Servicio firebase caido o no funciona pero devuelvo el usuario
|
||||||
|
const user = {
|
||||||
|
phone: phone,
|
||||||
|
fbuid: fbuid
|
||||||
|
};
|
||||||
return done(null, user, error);
|
return done(null, user, error);
|
||||||
})
|
})
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -98,14 +99,14 @@ passport.use('local-phone', new LocalStrategy(localPhoneOptions, async (phone, f
|
|||||||
// JWT
|
// JWT
|
||||||
passport.use('jwt', new CustomStrategy(async (req, done) => {
|
passport.use('jwt', new CustomStrategy(async (req, done) => {
|
||||||
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);
|
||||||
console.log(token);
|
|
||||||
if (!token) {
|
if (!token) {
|
||||||
return done(null, false, { message: 'Unauthorized'});
|
return done(null, false, { message: 'Unauthorized'});
|
||||||
}
|
}
|
||||||
|
|
||||||
const result = securityHelper.verify(token);
|
const result = securityHelper.verify(token);
|
||||||
if (result) {
|
if (result) {
|
||||||
console.log(result);
|
|
||||||
//recuperamos el usuario de la petición
|
//recuperamos el usuario de la petición
|
||||||
let user = await authService.extraMethods.findUser({ phone: result.phone});
|
let user = await authService.extraMethods.findUser({ phone: result.phone});
|
||||||
if (user){
|
if (user){
|
||||||
|
|||||||
@ -50,6 +50,24 @@ async function login2(req, res, next) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function loginWithPhone(req, res, next) {
|
||||||
|
try {
|
||||||
|
console.log(req.user);
|
||||||
|
const data = {
|
||||||
|
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);
|
||||||
|
_user.token = tokens.token;
|
||||||
|
return controllerHelper.handleResultResponse(_user, null, req.params, res, httpStatus.OK);
|
||||||
|
} catch (error) {
|
||||||
|
return controllerHelper.handleErrorResponse(MODULE_NAME, login.name, error, res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function register(req, res, next) {
|
async function register(req, res, next) {
|
||||||
|
|
||||||
function cleanAdminData(user) {
|
function cleanAdminData(user) {
|
||||||
@ -116,7 +134,7 @@ async function regenerateToken(req, res, next) {
|
|||||||
const result = { token: tokens.token };
|
const result = { token: tokens.token };
|
||||||
return controllerHelper.handleResultResponse(result, null, req.params, res, httpStatus.OK);
|
return controllerHelper.handleResultResponse(result, null, req.params, res, httpStatus.OK);
|
||||||
} catch(error) {
|
} catch(error) {
|
||||||
controllerHelper.handleErrorResponse(MODULE_NAME, regenerateToken.name, error, res);
|
return controllerHelper.handleErrorResponse(MODULE_NAME, regenerateToken.name, error, res);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return controllerHelper.handleResultResponse(null, null, req.params, res, httpStatus.UNAUTHORIZED);
|
return controllerHelper.handleResultResponse(null, null, req.params, res, httpStatus.UNAUTHORIZED);
|
||||||
@ -143,6 +161,7 @@ async function rejectToken(req, res, next) {
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
login,
|
login,
|
||||||
login2,
|
login2,
|
||||||
|
loginWithPhone,
|
||||||
register,
|
register,
|
||||||
regenerateToken,
|
regenerateToken,
|
||||||
rejectToken,
|
rejectToken,
|
||||||
|
|||||||
@ -12,7 +12,7 @@ const AccessValidator = require('../../middlewares/accessValidator');
|
|||||||
//const postHandler = new ModelHandler(models.Post);
|
//const postHandler = new ModelHandler(models.Post);
|
||||||
|
|
||||||
routes.post('/auth',
|
routes.post('/auth',
|
||||||
SchemaValidator(authValidation.LoginInputType, true),
|
SchemaValidator(authValidation.LoginWinEmailInputType, true),
|
||||||
AccessValidator.isRegisteredUserEmail,
|
AccessValidator.isRegisteredUserEmail,
|
||||||
authController.login,
|
authController.login,
|
||||||
);
|
);
|
||||||
@ -23,12 +23,21 @@ routes.get('/auth',
|
|||||||
authController.login2,
|
authController.login2,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Registro de usuario a partir del usuario de Firebase y
|
||||||
|
// los datos del formulario.
|
||||||
routes.post('/register',
|
routes.post('/register',
|
||||||
SchemaValidator(authValidation.RegisterInputType, true),
|
SchemaValidator(authValidation.RegisterInputType, true),
|
||||||
AccessValidator.isRegisteredUserPhone,
|
AccessValidator.isRegisteredUserPhone,
|
||||||
authController.register,
|
authController.register,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
routes.get('/loginWithPhone',
|
||||||
|
SchemaValidator(authValidation.LoginWithPhoneInputType, true),
|
||||||
|
AccessValidator.isRegisteredUserPhone,
|
||||||
|
authController.loginWithPhone,
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
routes.get('/pepepe', AccessValidator.isLoggedUser,
|
routes.get('/pepepe', AccessValidator.isLoggedUser,
|
||||||
function (req, res, next) {
|
function (req, res, next) {
|
||||||
res.send(req.user.email);
|
res.send(req.user.email);
|
||||||
|
|||||||
@ -5,6 +5,16 @@ const LoginInputType = Joi.object().keys({
|
|||||||
password: Joi.string().required(),
|
password: Joi.string().required(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const LoginWithPhoneInputType = Joi.object().keys({
|
||||||
|
phone: Joi.string().required(),
|
||||||
|
fbuid: Joi.string().required(),
|
||||||
|
});
|
||||||
|
|
||||||
|
const LoginWithEmailInputType = Joi.object().keys({
|
||||||
|
email: Joi.string().email().required(),
|
||||||
|
password: Joi.string().required(),
|
||||||
|
});
|
||||||
|
|
||||||
const RegisterInputType = Joi.object().keys({
|
const RegisterInputType = Joi.object().keys({
|
||||||
phone: Joi.string().required(),
|
phone: Joi.string().required(),
|
||||||
email: Joi.string().required(),
|
email: Joi.string().required(),
|
||||||
@ -21,7 +31,8 @@ const LoginOutputType = Joi.object().keys({
|
|||||||
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
LoginInputType,
|
LoginWithPhoneInputType,
|
||||||
|
LoginWithEmailInputType,
|
||||||
RegisterInputType,
|
RegisterInputType,
|
||||||
LoginOutputType
|
LoginOutputType
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user