Example #1
0
        public async Task <AccessResult <BearerUser> > Authenticate(String rut, String pwd)
        {
            try
            {
                Usuario user = await Get(rut);

                var hash = Hashing.ComputeSha256(pwd);

                if (user == null)
                {
                    return(new AccessFault("Usuario no existente"));
                }
                if (user.Password != hash)
                {
                    return(new AccessFault("Credenciales inválidas"));
                }

                BearerUser token = Token.GetFor(Settings.Secret, user, ExpirationSpan);
                if (token == null)
                {
                    return(new AccessFault("No se pudo crear token de acceso"));
                }

                return(token);
            }
            catch { return(new AccessFault("No se pudo autenticar al usuario")); }
        }
Example #2
0
        private AccessResult <Usuario> EnsureIntegrity(Usuario user)
        {
            user.Rut             = user.Rut.ToLower();
            user.Email           = user.Email.ToLower();
            user.Rol             = Context.Rol.Find(user.Rol)?.Id ?? Context.Rol.FirstOrDefault().Id;
            user.Password        = Hashing.ComputeSha256(user.Password);
            user.FechaNacimiento = DateTime.Parse(user.FechaNacimiento).ToString("yyyy-MM-dd");

            return(user);
        }