public async Task RegisterAsync(RegisterRequest request)
        {
            if (!await userServices.IsAnExistingUserAsync(request.UserName, request.Email))
            {
                var newUser = new User
                {
                    UserName = request.UserName,
                    Password = BC.HashPassword(request.Password),
                    Email    = request.Email,
                    Contact  = new Contact {
                        Id = Guid.NewGuid().ToString()
                    }
                };
                await userServices.CreateAsync(newUser);

                logger.LogInformation($"New user [{request.Email}] register.");

                var claims = new[]
                {
                    new Claim(ClaimTypes.Name, request.UserName),
                    new Claim(ClaimTypes.Email, request.Email)
                };
                var ConfirmToken = jwtAuthManager.GenerateConfirmEmailToken(request.UserName, claims, DateTime.Now);

                string Url = $"{configuration["appUrl"]}/api/account/confirmemail?UserName={request.UserName}&token={ConfirmToken}";

                await emailSender.SendEmailAsync(request.Email, "Confirm Email - Maxshoes", "<h1>Hello from Max Shoes</h1>" + $"<p> please confirm email by <a href='{Url}'>Click here!</a></p>");
            }

            else
            {
                throw new Exception($"Email {request.Email } already exists.");
            }
        }
示例#2
0
        public async Task <ActionResult> SendConfirmEmail([FromBody] ConfirmEmailRequest request)
        {
            var claims = new[]
            {
                new Claim(ClaimTypes.Name, request.UserName),
                new Claim(ClaimTypes.Email, request.UserEmail)
            };
            var ConfirmToken = _jwtAuthManager.GenerateConfirmEmailToken(request.UserName, claims, DateTime.Now);

            string Url = $"{_configuration["appUrl"]}/api/account/confirmemail?UserName={request.UserName}&token={ConfirmToken}";

            await _emailSender.SendEmailAsync(request.UserEmail, "Confirm Email - Maxshoes", "<h1>Hello from Max Shoes</h1>" + $"<p> please confirm email by <a href='{Url}'>Click here!</a></p>");

            return(Ok());
        }