Me disculpo si esto puede ser de sentido común para algunos, pero todavía estoy aprendiendo. Tengo una aplicación para iOS que sincroniza archivos en un servidor web. Una vez que el usuario inicia sesión en el dispositivo, permanece conectado a menos que cierre la sesión. Actualmente, cada vez que el usuario inicia una solicitud del servidor, como agregar, actualizar o eliminar archivos, solo envío el correo electrónico del usuario y no la contraseña al servidor, ya que el usuario ya está autenticado en el dispositivo.¿Debo autenticar la contraseña de un usuario para cada solicitud de servidor?
¿Debo enviar la contraseña almacenada del usuario cada vez que realiza una solicitud y que el servidor la autentique antes de continuar con la solicitud? ¿Por qué o por qué no?
¿Entonces cada usuario tiene un único identificador de sesión generado una vez? ¿Es esto como una identificación única para sus solicitudes de servidor? ¿Cambia con cada solicitud o es un identificador de por vida? ¿Qué pasa con una contraseña hash? ¿Puedo usar eso en su lugar? – Snowman
Genere un nuevo identificador de sesión cada vez que inicie sesión. No está seguro de qué está utilizando para un servidor, pero la mayoría lo hará de forma automática. La clave es que si el servidor generó una cookie de id. De sesión * antes * de que el usuario iniciara sesión, y la envió a través de un canal inseguro, debe invalidar la sesión y crear una nueva al iniciar sesión. Todas las solicitudes autenticadas se deben realizar a través de HTTPS. – erickson
Así que, por ejemplo, la aplicación Facebook iOS ... un usuario generalmente permanecerá conectado durante meses. Cómo lo harían? ¿Utilizarían la misma ID de sesión por cuántos meses el usuario ha iniciado sesión? ¿Envían un correo electrónico o una contraseña? ¿Cómo buscan al usuario? – Snowman