public async Task <IdentityResult> Handle(Command request, CancellationToken cancellationToken)
            {
                var user = await userManager.FindByEmailAsync(request.Email);

                var tokenBytes   = WebEncoders.Base64UrlDecode(request.Token);
                var decodedToken = Encoding.UTF8.GetString(tokenBytes);

                return(await userAccessor.ConfirmInviteAsync(user, userManager, decodedToken));
            }
Example #2
0
            public async Task <IdentityResult> Handle(Command request, CancellationToken cancellationToken)
            {
                var user = await userManager.FindByEmailAsync(request.Email);

                var tokenBytes   = WebEncoders.Base64UrlDecode(request.Token);
                var decodedToken = Encoding.UTF8.GetString(tokenBytes);

                var confirmInviteResult = await userAccessor.ConfirmInviteAsync(user, userManager, decodedToken);

                if (!confirmInviteResult.Succeeded)
                {
                    throw new Exception("Error - invalid invite token.");
                }

                var passwordToken = await userManager.GeneratePasswordResetTokenAsync(user);

                var datetime = DateTime.UtcNow.ToString("f", CultureInfo.CreateSpecificCulture("en-US"));

                logger.LogInformation($"{user.Email} created their password on {datetime}.");

                return(await userManager.ResetPasswordAsync(user, passwordToken, request.Password));
            }