Tengo una base de clientes existente. Un cliente tiene citas. Actualmente no pueden acceder o cambiar sus citas sin contactarme directamente.
Quiero ofrecerles una forma de acceder y cambiar sus próximas citas, con la menor molestia posible (más esfuerzo para el cliente significa menos posibilidades de que lo usen y menos beneficios).
Mi pensamiento es este: genere un UUID (lo más aleatorio posible) y envíeles un SMS con instrucciones para instalar una aplicación (Android / iOS) y una URL de aplicación asociada (app: // UUID).
Al abrir la aplicación con esta URL, almacena el UUID y lo utiliza para realizar solicitudes a través de la aplicación a mi servicio web con HTTPS, que luego recupera sus citas y posiblemente cambia sus citas (esta es la única operación de "escritura").
Dado que la aplicación no estará disponible a través de un navegador web normal, estoy pensando que proporcionar el UUID en una aplicación-URL evitará que las personas "dejen" su URL en todos los navegadores aleatorios, solo tendrán que usar el URL una vez, y controlo que todas las solicitudes de servicio web se realizan a través de la aplicación en HTTPS para que el UUID no se derrame de esa manera.
Mientras estoy pensando en hacer que este UUID "dure para siempre", agregaré una opción para que los clientes informen su identificación como perdida y soliciten una nueva identificación (invalidando la anterior).
Dado este esquema, estoy pensando que:
-
Perder su teléfono significa perder su identidad (almacenada en la aplicación)
-
Reenviar / perder el SMS / URL significa perder su identidad (no debería ser necesario más que para la apertura inicial de la aplicación para guardar la identidad, pero no espero que la mayoría de la gente se moleste en eliminarlo incluso si dicho a)
-
Débil si se puede adivinar UUID
¿En qué escollos y situaciones de seguridad no he pensado? Tenga en cuenta que la facilidad de uso para los clientes es importante (preferiblemente no rellenar nada / mucho), y si bien la información se considera privada, no tiene un valor muy alto.
Comentarios sobre el uso de UN / PW:
Dado que la base de clientes existe, necesito saber qué cliente tiene qué inicio de sesión. Estoy pensando que tendrían que crearlo ellos mismos en la oficina (lo que me gustaría evitar tener la menor cantidad de información posible), o darles algún UN / PW generado que puedan usar (pero luego nuevamente Lo estoy distribuyendo), o lo crean en línea y de alguna manera proporcionan suficiente información para identificarse y conectarse.
En general, me gustaría algún esquema donde el punto de partida sea que puedan identificarse sin ningún problema, dada la información que luego sé que son ellos. Estoy abierto a sugerencias, ya que puedo esperar demasiado de muy poca información.