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)); }
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)); }