AspNetIdentity icon indicating copy to clipboard operation
AspNetIdentity copied to clipboard

Change EmailConfirmationToken expired time

Open jariba19 opened this issue 3 years ago • 0 comments

Hi, i'm trying to change the expiration time of the EmailConfirmationToken that is generated with the GenerateEmailConfirmationTokenAsync method.

To do that, i added the next code in startup.cs class:

private const string EmailConfirmationTokenProviderName = "ConfirmEmail";

public void ConfigureServices(IServiceCollection services) { ...

services.Configure<IdentityOptions>(options =>
{
    options.Tokens.EmailConfirmationTokenProvider = EmailConfirmationTokenProviderName;
});

services.Configure<ConfirmEmailDataProtectionTokenProviderOptions>(options =>
{
    options.TokenLifespan = TimeSpan.FromDays(1);
});

services.AddIdentity<ApplicationUser, IdentityRole>(
    item =>
    {
        ...
        item.Tokens.EmailConfirmationTokenProvider = EmailConfirmationTokenProviderName;
        item.Tokens.PasswordResetTokenProvider = EmailConfirmationTokenProviderName;
    })
    .AddEntityFrameworkStores<ApplicationDbContext>()
    .AddDefaultTokenProviders()
    .AddTokenProvider<ConfirmEmailDataProtectorTokenProvider<ApplicationUser>>(EmailConfirmationTokenProviderName);
...

} public class ConfirmEmailDataProtectionTokenProviderOptions : DataProtectionTokenProviderOptions { }

public class ConfirmEmailDataProtectorTokenProvider : DataProtectorTokenProvider where TUser : class { public ConfirmEmailDataProtectorTokenProvider(IDataProtectionProvider dataProtectionProvider, IOptions options, ILogger<DataProtectorTokenProvider> logger) : base(dataProtectionProvider, options, logger) { } } The project is in Core 3.1, when i set options.TokenLifespan = TimeSpan.FromMinutes(5) for example, it works perfectly but when i set 24 hours or one day in TokenLifespan, the token expire in one hour more or less. The same problem occurs with PasswordResetToken.

Can't exceed a max time? How could I solve the problem?

jariba19 avatar Sep 01 '21 07:09 jariba19