使用Asp.Net Identity Core 2.1生成用于电子邮件确认的简短代码

时间:2018-12-04 15:22:28

标签: asp.net-core asp.net-identity

此要求已发布在SO上的其他位置,但答案包含IUserTokenProvider,我在asp.net core 2.1中找不到。

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

1 个答案:

答案 0 :(得分:0)

在配置身份时,您可以传入一组选项,其中包括用于各种情况的令牌提供程序。有一个内置的EmailTokenProvider<TUser>继承自TotpSecurityStampBasedTokenProvider<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;
});