Генерация краткого кода для подтверждения электронной почты с использованием Asp.Net Identity core 2.1 - PullRequest
0 голосов
/ 04 декабря 2018

Это требование опубликовано где-то еще в SO, но ответ содержал IUserTokenProvider, который я не могу найти в ядре asp.net 2.1.

Как я могу реализовать процедуру подтверждения электронной почты, когда пользователь не нажимает на ссылкуно получает короткий токен (6 символов), который можно безопасно использовать для подтверждения адреса электронной почты.

1 Ответ

0 голосов
/ 04 декабря 2018

Когда вы настраиваете Identity, вы можете передать набор опций, среди которых поставщики токенов для различных сценариев.Есть встроенный 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;
});
...