Telefon numarası yerine bir e-postayı onaylamak için GenerateChangePhoneNumberTokenAsync () kullanmak kabul edilebilir mi?

0

Soru

Xamarin'de bir API ve bir Mobil uygulama oluşturuyorum. Twilio veya diğer SMS sağlayıcılarını kullanmak zorunda kalacağım için telefon numarasını onaylamak istemiyorum, bunun yerine bir e-postayı onaylamak istiyorum. Aynı zamanda, API MVC olmadığından ve herhangi bir görünüme sahip olmayacağından, kullanıcıya tıklanacak bir bağlantıyla gönderilecek bir e-posta belirteci oluşturmak istemiyorum.

Bunun yerine, kullanıcıya 6 basamaklı bir kodun e-postayla gönderilmesini istiyorum ve ardından kullanıcının e-postayı onaylamak için bu kodu mobil uygulama aracılığıyla göndereceği apı'de bir son nokta oluşturacağım. Örneğin:

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

Bu kodu oluşturur, telefon numarası yerine kullanıcılara e-posta ilettiğimi fark edin. Bu kod artık kullanıcıya e-postayla gönderilir ve kullanıcı bunu mobil uygulamaya girer. Sonra:

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

Bu, kodun doğru olduğunu onaylar. Bundan kaynaklanan boole, daha sonra manuel olarak ayarlamak için kullanacağım EmailConfirmed DB için true

İşe yarıyor. Ama kabul görür mü? Bunu yapmamam için bir sebep var mı?

1

En iyi cevabı

2

Ortaya çıkmasının bir nedeni, yalnızca bir doğrulama kodu olmasına rağmen, semantik olarak işlev telefon kodları içindir, bu nedenle e-postalar için kullanırsanız gelecekte bazı" gotcha'lar " tanıtılabilir.

Kaynağı okuyarak, uygulamanın şu anda e-posta kullanımı için de yeterince genel olan RFC 6238: Zamana Dayalı Tek Seferlik Parola Algoritmasına dayandığını görebilirsiniz.

Böylece, aynı yöntemi kullanarak, RFC 6238 belirtiminde uygulandığı kadar güvenli olduğunu bilirsiniz. ASP.NET Kimlik Çekirdeği.

Erişim değiştiricisi olduğu için sınıfı kullanamazsınız internal ancak aynı fikri takiben,. NET için aynı ilkeye dayanan OTP Kitaplıkları vardır.

Bunlardan birini kullanmak, uygulamanın bence mümkün olduğunca temiz ve genel olmasını sağlar, ancak mevcut sürümle hızlı ve kirli bir çözüm için ASP.NET Kimlik Çekirdeği, yaklaşımla ilgili herhangi bir sorun görmezdim.

2021-12-04 16:42:57

Diğer dillerde

Bu sayfa diğer dillerde

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