¿Cómo funciona el enlace de inicio de sesión móvil de Slack?

No puedo hablar sobre la implementación real, pero la idea básica es la siguiente:

Prerrequisitos:

  • Slack conoce su número de teléfono móvil; esto se ha establecido durante el proceso de inicio de sesión
  • Puede recibir mensajes de texto, muy probablemente, dado que está utilizando un teléfono inteligente

El proceso:

  • Hace clic en el botón y le dice a Slack que le envíe un enlace
  • Slack genera un código aleatorio y lo almacena en alguna base de datos, junto con una marca de tiempo y su nombre de usuario; la base de datos básicamente dice: si alguien le muestra este código, hasta este momento, acéptelo como una credencial de inicio de sesión para el usuario X
  • Slack genera un enlace que incluye el código aleatorio en la URL y se lo envía a usted
  • Hace clic en el enlace en su aplicación de mensajería de texto, que abre un navegador web, que detecta si tiene instalada la aplicación móvil Slack y lo redirige a ella. En cada uno de los pasos, el código aleatorio se pasa como un parámetro de URL o parámetro de inicio de la aplicación.
  • La aplicación móvil Slack se inicia, ve el código aleatorio pasado como un parámetro de inicio y lo presenta al servidor Slack
  • El servidor Slack busca la base de datos, encuentra el código aleatorio, valida que no haya pasado demasiado tiempo y le dice a la aplicación móvil: ” Sí, ese es el usuario X “; en realidad, probablemente intercambiará el código aleatorio por otro token que la aplicación puede usar durante la sesión.
  • Si bien utiliza la aplicación Slack, el servidor Slack marca el código aleatorio en la base de datos como se usa, por lo que no puede usarlo dos veces, evitando que los malos que robaron su teléfono inicien sesión en Slack más tarde.

Lo bueno de esta función es que utiliza mucha infraestructura existente que Slack necesitaría para otras funciones como:

  • OAuth o integración con otras aplicaciones y servicios
  • Generación de leads móviles
  • Validación de número de teléfono móvil