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")); } }
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); }