.net core identity 集成 github (二) 自定义邮箱验证Token

 

配置 token 的时候需要配置 DataProtectionTokenProviderOptions

 

 

 

1 //自定义配置 token
2 builder.Services.Configure<DataProtectionTokenProviderOptions>(options =>
3 {
4     //token 过期时间
5     options.TokenLifespan = TimeSpan.FromMinutes(60);
6 });

那么自定义就是继承 DataProtectionTokenProviderOptions

 1 public class CustomEmailConfirmationTokenProviderOptions: DataProtectionTokenProviderOptions  {  } 

Service 配置

注意代码中

 //自定义邮箱token生成提供程序
 options.Tokens.EmailConfirmationTokenProvider = "CustomEmailConfirmation";
 AddTokenProvider<CustomEmailConfirmationTokenProvider<ApplicationUser>>("CustomEmailConfirmation")
 
1 //自定义 邮件token options
2 builder.Services.Configure<CustomEmailConfirmationTokenProviderOptions>(options =>
3 {
4     options.TokenLifespan = TimeSpan.FromSeconds(60);
5 });

 

 1 /identity设置
 2 builder.Services.Configure<IdentityOptions>(options =>
 3 {
 4     //最多失误次数锁定
 5     options.Lockout.MaxFailedAccessAttempts = 5;
 6     //每次锁定15分钟
 7     options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(15);
 8     //登陆必须是邮件确认的
 9     options.SignIn.RequireConfirmedEmail = true;
10 
11     //自定义邮箱token生成提供程序
12     options.Tokens.EmailConfirmationTokenProvider = "CustomEmailConfirmation";
13 
14     //密码设置
15     options.Password.RequiredLength = 6;
16     options.Password.RequiredUniqueChars = 3;
17     options.Password.RequireNonAlphanumeric = false;
18     options.Password.RequireLowercase = false;
19     options.Password.RequireUppercase = false;
20     options.Password.RequireDigit = false;
21 
22 });
23 //identity注入
24 builder.Services.AddIdentity<ApplicationUser, IdentityRole>()
25     .AddErrorDescriber<CustomIdentityErrorDescriber>()
26     .AddEntityFrameworkStores<ShopAppContext>()
27     .AddDefaultTokenProviders()
28     .AddTokenProvider<CustomEmailConfirmationTokenProvider<ApplicationUser>>("CustomEmailConfirmation")
29     ;

 

posted on 2023-03-26 22:05  是水饺不是水饺  阅读(45)  评论(0)    收藏  举报

导航