Registro de SMS como en la aplicación para móviles: whatsapp
Me pregunto cómo funcionan estos mecanismos de registro de SMS. Busqué en internet, pero el problema es que hay tantos proveedores de sms que quieren vender el servicio sms en línea, que no puedo encontrar nada …
Pregunta: Cómo funciona: Configure su número de móvil y le enviaremos un SMS con un código de registro único. Ponga este código en nuestra aplicación.
- Android: ¿Cómo enviar unicode sms programatically y recibirlo en el otro lado correctamente?
- ¿Cómo enviar el SMS más de 160 caracteres?
- Cómo guardar SMS en la bandeja de entrada en android?
- No se puede instanciar el receptor en BroadcastReceiver SMS
- Iniciar la aplicación sms con una intención
¿Qué hay detrás? ¿Tienen un sms-gateway o algo así? ¿No cuesta demasiado?
Gracias
- Cómo obtener todos los mensajes de ThreadID en android
- Receptor de radiodifusión sigue funcionando después de cerrar la aplicación - Android
- ¿Cómo acceder al almacenamiento de SMS en Android?
- Error básico en AndroidManifest.xml para recibir permiso de SMS
- Android: obtenga la hora de la fecha de la marca de tiempo de SMS en milisegundos
- ¿Cómo enviar SMS usando Twilio en mi aplicación Android?
- Android: no recibe confirmación de envío de SMS en el emulador
- Configuración predeterminada de Android por omisión de la aplicación sms
Aquí está un servicio simple de la verificación del número de teléfono construido encima de Nexmo (renuncia, hago un poco evangelism del revelador para Nexmo). Creo que es básicamente lo que estás buscando, el objetivo es verificar que un número realmente pertenece a un usuario (también podría ser utilizado para la autenticación de segundo factor).
La integración básica para una aplicación móvil (específicamente para este código de ejemplo, pero un flujo común):
- Envíe el número de teléfono a verificar, reciba un hash único.
- El sistema de verificación envía un código único al usuario.
- Una vez que el usuario pasa ese código a su aplicación, el hash original y el código se envían al sistema de verificación para ser validado.
Puedes eliminar la porción alojada, y simplemente tomar los pasos dentro de tu aplicación (generar un código, enviar a través de una API SMS, comprobar el código que el usuario entra). Sin embargo, hay algunas cosas a considerar en ese punto:
- Las credenciales de la API de SMS se compilan en su aplicación distribuida. ¿Es algo que quieres arriesgar?
- El código se envía a través de la red desde el dispositivo; Mientras que SSL detendrá la observación casual del código, alguien que quiera falsificar un registro podría más que probablemente capturar el código de la solicitud HTTP.
Ambos problemas se resuelven colocando el sistema de verificación fuera de la aplicación móvil.
Sé que este post es antiguo, pero esto es para toda la gente cómo visitar esta página en la feuture:
Lo que el usuario "Harsh Shah" dijo que está mal ..
NO DEBE generar un número aleatorio en el propio dispositivo! Esto compromete toda la verificación,
- Solicita al usuario el número de teléfono, envíelo al servidor.
- Como respuesta a esa petición, genera un número aleatorio y guarda con el número de usuario allí los registros de usuario en db y envía SMS con ese número aleatorio, la RESPUESTA para la solicitud debe ser SENT-OK, NOT-SENT.
- El dispositivo consigue el SMS y lo envía de nuevo al servidor para comper con el expediente existido del DB.
el intercambio de datos:
- El teléfono envía ('012345567') -> el servidor responde ('SENT-OK'); En segundo plano: servidor: [generar número, lo envía en SMS, guardar en db para el usuario 01234567, por ejemplo: 123123]
[El teléfono lee el SMS, por ejemplo, '123123']
- El teléfono envía ('01234567', '123123') -> servidor responde ('AUTH-OK');
On background: server: [comprobar db para el usuario de registro 01234567, comper el número aleatorio generado en el paso 1 con el número que el usuario envió).
Si generas el número en el teléfono del usuario, cualquier script kiddie puede hackear tu autenticación extrayendo este número de la memoria / almacenamiento (fácil de hacer) y spoofing un sms que lo contiene (super fácil de hacer también) … Creo que este es un caso raro, pero este es un importante agujero en la seguridad, puede autenticarse como cualquier usuario existente y robar datos de ellos si lo haces de la manera "Harsh Shah", dijo …
Los fundamentos básicos son:
- Genera un código aleatorio en tu aplicación en el dispositivo. Pregunte al usuario por su número de móvil.
- Envíe este código y número de móvil a su aplicación que se ejecuta en el servidor.
- Llame a la API de puerta de enlace de sms para enviar el código como un mensaje al número de móvil especificado.
Hay muchos proveedores de pasarela de SMS. Puedes buscar en google. La mayoría de ellos también proporcionan un tutorial para usar su API en varios lenguajes de programación. El costo se basa principalmente en por mensaje y generalmente se van a comprar en forma de paquete de número de SMSes.
En este artículo se explica cómo integrar la verificación sms a su aplicación Android, al igual que Whats App.
Android añadiendo SMS de verificación como WhatsApp – Parte 1
Android añadiendo SMS de verificación como WhatsApp – Parte 2
Básicamente, los siguientes pasos implican la verificación del número de móvil
-
El número de teléfono del primer usuario se enviará a nuestro servidor donde se creará una nueva fila de usuarios.
-
Nuestro servidor solicita la pasarela SMS para un sms al número de móvil con un código de verificación.
-
SMS gateway envía un SMS al dispositivo del usuario con el código de verificación.
-
El código de verificación se enviará nuevamente a nuestro servidor para su verificación. Nuestro servidor lo verifica y activa al usuario.