public async Task <bool> CheckValidRequst(string resetCode, string password)
        {
            var entity = await DbSet.SingleOrDefaultAsync(x => x.Code == resetCode);

            if (entity == null || entity.Code == "used")
            {
                return(false);
            }

            if (entity.WhenAskedForNew.AddMinutes(15) > DateTime.UtcNow && DateTime.UtcNow.AddMinutes(-15) < entity.WhenAskedForNew)
            {
                var user = await _userRepo.GetUser(entity.Email);

                CreatePassword.CreatePasswordHash(password, out byte[] hash, out byte[] salt);

                user.PasswordHash = hash;
                user.PasswordSalt = salt;
                //ownerEntry.RefreshToken = GetRefreshToken();

                await _userRepo.UpdateUser(user);

                entity.Code = "used";
                DbSet.Update(entity);
                await _dbContext.SaveChangesAsync();

                return(true);
            }
            return(false);
        }
Example #2
0
        public User TransformDto(object obj)
        {
            var userRegistration = obj as UserRegistration;

            if (userRegistration == null)
            {
                return(null);
            }

            CreatePassword.CreatePasswordHash(userRegistration.Password, out byte[] hash, out byte[] salt);
            var dbUser = new User();

            dbUser.PasswordHash = hash;
            dbUser.PasswordSalt = salt;
            dbUser.Email        = userRegistration.Email;
            dbUser.Bio          = userRegistration.Bio;
            dbUser.Username     = userRegistration.FirstName;

            return(dbUser);
        }