使用 Asp.Net 身份核心 2.1 生成用于电子邮件确认的短代码



这个要求发布在SO的其他地方,但答案包含IUserTokenProvider,我在核心2.1中找不到 asp.net。

如何实现电子邮件确认例程,其中用户不单击链接,但收到一个可以安全地用于确认电子邮件地址的短令牌(6 个字符)。

配置 Identity 时,可以传入一组选项,其中包括用于各种方案的令牌提供程序。有一个从TotpSecurityStampBasedTokenProvider<TUser>继承的内置EmailTokenProvider<TUser>。你可以使用它。它实际上已经通过调用AddDefaultTokenProviders()注册,AddIdentity<TUser, TRole>AddDefaultIdentity<TUser>方法在内部调用。因此,您只需使用TokenOptions.DefaultEmailProvider将其设置为该提供程序:

services.AddDefaultIdentity<IdentityUser>(o => {
// other options: password reqs, username reqs, etc.
o.Tokens.EmailConfirmationTokenProvider = TokenOptions.DefaultEmailProvider;
});