public async Task <IActionResult> Confirm(UserForConfirmDto userForConfirmDto)
        {
            var userFromRepo = await _repo.ConfirmEmail(userForConfirmDto);

            if (userFromRepo == null)
            {
                return(BadRequest("E-mail visszaigazolás sikertelen"));
            }

            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, userFromRepo.Id.ToString()),
                new Claim(ClaimTypes.Name, userFromRepo.Username)
            };

            var key = new SymmetricSecurityKey(Encoding.UTF8
                                               .GetBytes(_config.GetSection("AppSettings:Token").Value));

            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature);

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.Now.AddDays(45),
                SigningCredentials = creds
            };

            var tokenHandler = new JwtSecurityTokenHandler();

            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(Ok(new
            {
                token = tokenHandler.WriteToken(token)
            }));
        }
        public async Task <User> ConfirmEmail(UserForConfirmDto userToConfirm)
        {
            var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == Int32.Parse(userToConfirm.Id));

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

            if (user.EMailConfirmed)
            {
                return(null);
            }

            if (user.ConfirmKey != userToConfirm.ConfirmKey)
            {
                return(null);
            }

            user.EMailConfirmed = true;
            await _context.SaveChangesAsync();

            return(user);
        }