Naveen N
Naveen N

Reputation: 51

VerifyUserTokenAsync() failed with purpose: EmailConfirmation for user XXXX1145-8bcb-48d6-b8a8-dcb75955b738

I am getting 'Invalid token' error while Email confirmation in .NET core.
Above error is thrown randomly. Clicking the confirmation link for the first time is throwing error and again if we click on the same link email is getting confirmed.
Web application is deployed in Azure. Also in logs we found the below error

VerifyUserTokenAsync() failed with purpose: EmailConfirmation for user XXXX1145-8bcb-48d6-b8a8-dcb75955b738.

Email Confirmation method is below

public async Task<IActionResult> ConfirmEmail(string userid, string token)
{            
    ApplicationUser user = await _userManager.FindByIdAsync(userid);
    if(user != null)
    {
        IdentityResult result = await _userManager.ConfirmEmailAsync(user, token);
        if (result.Succeeded)
        {
            return Redirect("/Thankyou?status=confirm");
        }
        else
        {                    
            return Redirect("/Thankyou?status=" + result.Errors.ToArray()[0].Description);                    
        }
    }
    else
    {
        return Redirect("/Thankyou?status=Invalid User");
    }

} 

Upvotes: 4

Views: 2958

Answers (2)

Lajne
Lajne

Reputation: 82

I had the same problem, I solved it by decoding my URL encoded tokens:

var decodedTokenString = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(token));

Upvotes: 4

Gabriel Robert
Gabriel Robert

Reputation: 3080

It looks like the user account is already confirmed. You can take a look at the value of User.EmailConfirmed.

Upvotes: 0

Related Questions