Exemple #1
0
        public ActionResult GenerateCode(SimpleLoginDto login)
        {
            try
            {
                var random = new Random();
                var code   = random.Next(1000, 9999);

                //var client = new CalixtaSoapWebService.GatewayPortTypeClient();
                //var tarea = client.EnviaMensajeAsync(47622, "*****@*****.**", "d7e143c2dc5db8f9a4796595f81fd23f1f63a5a60b2f7a558c5b516a44c8087a",
                //                                "SMS", DateTime.Now.ToString("dd/MM/YYYY/hh/mm"), login.Telefono, $"Codigo de seguridad: {code}", 0);
                //tarea.Wait();

                //if(tarea.Result == 3)
                _codigoService.Save(new CodigoValidacion {
                    Telefono = login.Telefono, Codigo = code, FechaGeneracion = DateTime.Now
                });
                return(Ok(new { code }));

                //return BadRequest("No se ha podido enviar el SMS con codigo de seguridad, por favor contacte con el administrador.");
            }
            catch (AggregateException aex)
            {
                return(ValidationProblem(new ValidationProblemDetails {
                    Detail = aex.Message
                }));
            }
            catch (Exception ex)
            {
                return(ValidationProblem(new ValidationProblemDetails {
                    Detail = ex.Message
                }));
            }
        }
Exemple #2
0
        public ActionResult Authenticate(SimpleLoginDto login)
        {
            try
            {
                var tipoCuenta = _tipoCuentaService.GetByCriteria(TipoCuentaCriteria.Create().EqualNombre(login.TipoCuenta));
                var user       = _service.GetByCriteria(UsuarioCriteria.Create().ByTelefono(login.Telefono));
                var cuentas    = _cuentaService.GetCollectionByCriteria(CuentaUsuarioCriteria.Create().ByIdUsuario(user.Id.Value));

                if (!cuentas.Any(item => item.IdTipoCuenta == tipoCuenta.Id && item.Password == StringHelper.GetSHA1(login.Password)))
                {
                    return(Unauthorized());
                }

                var token = JWTTokenGenerator.GenerateToken(login.Telefono);
                if (string.IsNullOrWhiteSpace(token))
                {
                    var error = new ValidationProblemDetails
                    {
                        Title  = "Error de autenticación",
                        Detail = "No se ha podido generar el token de autorización."
                    };
                    return(ValidationProblem(error));
                }

                return(Ok(new { token }));
            }catch
            {
                return(NoContent());
            }
        }
Exemple #3
0
        public ActionResult CodeAuthenticate(SimpleLoginDto login)
        {
            try
            {
                var loginCode = new CodigoValidacion {
                    Telefono = login.Telefono,
                    Codigo   = login.Codigo
                };
                var authenticatedUser = _codigoService.Login(loginCode);
                if (authenticatedUser == null)
                {
                    return(Unauthorized());
                }

                var token = JWTTokenGenerator.GenerateToken(authenticatedUser.Telefono);
                if (string.IsNullOrWhiteSpace(token))
                {
                    var error = new ValidationProblemDetails
                    {
                        Title  = "Error de autenticación",
                        Detail = "No se ha podido generar el token de autorización."
                    };
                    return(ValidationProblem(error));
                }

                return(Ok(new { token }));
            }catch
            {
                return(NoContent());
            }
        }