Es aceptable utilizar GenerateChangePhoneNumberTokenAsync() para confirmar un correo electrónico en lugar del número de teléfono?

0

Pregunta

Estoy construyendo una API y una APLICACIÓN Móvil en Xamarin. No quiero confirmar el número de teléfono como yo tendría que usar Twilio o SMS de los proveedores, en lugar de eso, quiero confirmar un correo electrónico. Al mismo tiempo, no quiero crear un correo electrónico token para ser enviado al usuario con un enlace para hacer clic, como la API no es MVC y no tienen ningún punto de vista.

En lugar de eso, quiero un código de 6 dígitos código será enviado por correo electrónico el usuario y, a continuación, voy a crear un extremo de la API donde el usuario podrá enviar ese código a través de la APLICACIÓN móvil, para confirmar el correo electrónico. Por ejemplo:

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

Esto crea el código, aviso que me estoy pasando a los usuarios de correo electrónico en lugar de un número de teléfono. Este código es ahora envían por correo electrónico al usuario, y el usuario entra en la APLICACIÓN móvil. Entonces:

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

Esto confirma que el código es correcto. El booleano resultante de esto voy a utilizar para establecer manualmente EmailConfirmed en la base de datos para true

Funciona. Es aceptable, aunque? ¿Hay alguna razón por qué yo no debería estar haciendo esto?

1

Mejor respuesta

2

Una razón por la que aparece es que aunque se trata de un código de validación, semánticamente la función de teléfono, códigos, por lo que podría tener algunas "trampas" que se introdujo en el futuro si se utiliza para e-mails.

Mediante la lectura de la fuente se puede ver que la aplicación está basada en el RFC 6238: Basado en el Tiempo de Una Contraseña de un solo Algoritmo, que es lo suficientemente genérica como para el uso de correo electrónico también.

Por lo tanto, usted sabe que utilizando el mismo método, es tan seguro como el RFC 6238 especificación de como se implementa en ASP.NET la Identidad de Núcleo.

Usted no sólo puede utilizar la clase porque el modificador de acceso es internalpero siguiendo la misma idea, hay FISCALÍA Bibliotecas para .NET basado en el mismo principio.

El uso de uno de ellos sería el de asegurar que la aplicación es tan limpio y genérica como sea posible en mi opinión, pero para la rápida y sucia de la solución con la versión actual de ASP.NET la Identidad de Núcleo, me gustaría ver que no haya problemas con el enfoque.

2021-12-04 16:42:57

En otros idiomas

Esta página está en otros idiomas

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