此要求已发布在SO上的其他位置,但答案包含IUserTokenProvider,我在asp.net core 2.1中找不到。
我如何实现电子邮件确认例程,其中用户没有单击链接而是收到了一个短令牌(6个字符),可以安全地用于确认电子邮件地址。
答案 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;
});