Estoy desarrollando una aplicación y una página web para iOS, ambas usan el mismo backend de Parse.
La página web contiene algunas funciones que no están disponibles en la aplicación iOS. Por lo tanto, me gustaría presentar al usuario una opción para abrir la página de inicio desde la aplicación. Como el usuario ya ha iniciado sesión antes en la aplicación, me gustaría omitir el proceso de inicio de sesión cuando se abre la página de inicio.
Tengo una solución en mi cabeza para la cual me gustaría conocer su opinión. Cuando el usuario hace clic en un enlace en la aplicación, la aplicación llamará, por ejemplo, La función generateToken en Parse, que crearía un token aleatorio, almacenaría su DB con alguna fecha de vencimiento para este usuario y la devolvería a la aplicación. La aplicación luego abriría la página web con el parámetro de consulta token = newly_generated_token o pasaría el valor del token en los encabezados http si eso se puede lograr.
En una nueva solicitud, el código del servidor verificará si existe el parámetro (o encabezado) token , verifique la db para el valor del token e inicie sesión en el usuario apropiado donde se encontraría la coincidencia. Posteriormente el token quedaría invalidado. Si la solicitud no contuviera ningún parámetro 'token', la autenticación habitual pasaría y se mostraría la página de inicio de sesión. Toda la comunicación sería sobre https.
Me deshago del ataque de reproducción al invalidar el token cuando se usa. ¿Es vulnerable a otros ataques? ¿O hay alguna otra forma de hacer esto?
Cualquier ayuda apreciada. Gracias!