Example #1
0
        public override async Task <User> AddAsync(User obj)
        {
            // Verifica se o usuário já existe
            var existingEmail = await CheckUserExistByEmail(obj.Email);

            var existingUsername = await CheckUserExistByEmail(obj.Username);


            if (!existingEmail && !existingUsername)
            {
                // Cria salt e salt e salva no objeto
                var salt = EncryptPassword.CreateSaltArgon2();
                obj.Hash = Convert.ToBase64String(EncryptPassword.HashPasswordArgon2(obj.Password, salt));
                obj.Salt = Convert.ToBase64String(salt);

                // Adicona o usuário
                obj.Password = "******";
                var user = await base.AddAsync(obj);

                // Escondo hash e salt
                user.Hash = "";
                user.Salt = "";


                return(user);
            }

            return(null);
        }
Example #2
0
        public override async Task <int> UpdateAsync(User obj)
        {
            // Obtem usuário para saber hash e salt
            var user = await this.GetByIdAsync(obj.Id);

            // Verifica se password foi alterado
            if (obj.Password == "p@ssword")
            {
                obj.Hash = user.Hash;
                obj.Salt = user.Salt;
            }
            else
            {
                // Cria salt e salt e salva no objeto
                var salt = EncryptPassword.CreateSaltArgon2();
                obj.Hash     = Convert.ToBase64String(EncryptPassword.HashPasswordArgon2(obj.Password, salt));
                obj.Salt     = Convert.ToBase64String(salt);
                obj.Password = "******";
            }

            return(await base.UpdateAsync(obj));
        }