Je to prijateľné používať GenerateChangePhoneNumberTokenAsync() potvrďte e-mail namiesto telefónne číslo?

0

Otázka

Som budovy API a Mobilné APLIKÁCIE v Xamarin. Nechcem potvrdiť, telefónne číslo, ako by som musieť použiť Twilio alebo iných poskytovateľov SMS, namiesto toho, chcem potvrdiť e-mail. V rovnakom čase, nechcem vytvoriť e-mailovú token byť odoslané na užívateľa s odkazom na kliknite, ako API nie je MVC a nebudú mať žiadne názory.

Namiesto toho chcem 6-miestny kód bude e-mailom na používateľa a potom som sa vytvoriť koncový bod v API, kde užívateľ predloží že kód prostredníctvom mobilnej APLIKÁCIE, na potvrdenie e-mailovej adresy. Napríklad:

var code = await _userManager.GenerateChangePhoneNumberTokenAsync(newUser, newUser.Email);

To vytvára kód, oznámenie, som absolvovanie užívateľov e-mail skôr, než telefónne číslo. Tento kód je teraz e-mailom užívateľa a užívateľ zadá tento v mobilnej APLIKÁCII. Potom:

var confirmed = await _userManager.VerifyChangePhoneNumberTokenAsync(newUser, code, newUser.Email);

To potvrdzuje, že kód je správny. Boolean, ktoré vyplývajú z tejto som sa potom použiť na manuálne nastavenie EmailConfirmed v DB na true

Funguje to. Je to prijateľné, aj keď? Existuje nejaký dôvod, prečo som nemal robiť to?

1

Najlepšiu odpoveď

2

Jedným z dôvodov, ktoré sa objaví, je, že aj keď je to len overovací kód, sémantický funkcia je pre telefón kódy, takže by to mohlo mať nejaký "gotchas" predstavil v budúcnosti, ak budete používať pre e-maily.

Čítanie zdroj môžete vidieť, že realizácia je v súčasnosti založená na RFC 6238: Čas-Založené jednorazové Heslo Algoritmus, ktorý je všeobecný, dosť na e-mail použitie ako dobre.

Teda, viete, že pomocou tej istej metódy, to je rovnako bezpečná ako RFC 6238 špecifikácie, tak ako je implementovaná v ASP.NET Identita Core.

Nemôžete stačí použiť triedy, pretože prístupový modifikátor je internal,, ale po rovnakej myšlienke, tam sú OTP Knižnice na .ČISTÝ založené na rovnakom princípe.

Pomocou jedného z nich by sa zabezpečilo, že realizácia je rovnako čisté a všeobecný ako je to možné, podľa môjho názoru, ale pre rýchle a špinavé riešenie s aktuálnu verziu ASP.NET Identita Jadro, ja by som vidieť žiadne problémy s prístupom.

2021-12-04 16:42:57

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................