¿Cuál es la mejor manera de administrar el inicio de sesión de la cuenta en las aplicaciones de iPhone? ¿Cuál es la mejor manera de enviar los datos de la cuenta de forma segura?

Para nosotros, la mayor parte de nuestro desarrollo que hacemos es para backends ya hechos (como aplicaciones de clientes bancarios que hacemos para grandes bancos de Europa del Este) o desarrollamos el backend nosotros mismos. En general, en la mayoría de los casos, las credenciales de inicio de sesión de la cuenta se envían a través de HTTPS, ya sea en forma de hash de inicio de sesión / contraseña (a través de POST) o de inicio de sesión / contraseña como un hash salado en encabezados de autenticación de desafío-respuesta HTTP (consulte RFC 2617).

Es aconsejable usar algoritmos de hashing fuertes (preferiblemente salados con un valor nonce) para evitar ataques MITM. Supongo que también debería ser evidente que, en todos los casos posibles, debe usar el transporte cifrado SSL en las comunicaciones entre su aplicación y el servidor.

En algunos casos, el usuario tiene la oportunidad de crear un código PIN que luego está vinculado a un UUID de un dispositivo en particular y puede usarse en lugar de una contraseña para iniciar sesión desde ese dispositivo en particular. El servidor en todos los casos almacena hashes salados de contraseña o combo de UUID de dispositivo PIN.

En cuanto al inicio de sesión único (SSO) que está bastante bien documentado en los respectivos SDK. El token resultante se almacena en la base de datos y solicitamos información adicional del usuario si lo que recibimos de la API de la red social no es suficiente.