AspNetIdentity
AspNetIdentity copied to clipboard
Change EmailConfirmationToken expired time
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?