Al usar el protocolo OAuth, necesita una cadena secreta obtenida del servicio al que desea delegar. Si está haciendo esto en una aplicación web, simplemente puede almacenar el secreto en su base de datos o en el sistema de archivos, pero ¿cuál es la mejor manera de manejarlo en una aplicación móvil (o una aplicación de escritorio para el caso)?
Almacenar la cadena en la aplicación obviamente no es bueno, ya que alguien podría encontrarlo fácilmente y abusar de él.
Otro enfoque sería almacenarlo en su servidor y hacer que la aplicación lo recupere en cada ejecución, sin almacenarlo nunca en el teléfono. Esto es casi tan malo, porque tienes que incluir la URL en la aplicación.
La única solución viable que se me ocurre es obtener primero el token de acceso de forma normal (preferiblemente usando una vista web dentro de la aplicación), y luego enrutar todas las comunicaciones adicionales a través de nuestro servidor, lo que agregaría el secreto a los datos solicitados y se comunicaría con el proveedor Por otra parte, soy un novato en seguridad, así que realmente me gustaría escuchar las opiniones de algunas personas conocedoras sobre esto. No me parece que la mayoría de las aplicaciones lleguen a estas longitudes para garantizar la seguridad (por ejemplo, Facebook Connect parece asumir que usted pone el secreto en una cadena directamente en su aplicación).
Otra cosa: no creo que el secreto esté involucrado en solicitar inicialmente el token de acceso, por lo que podría hacerse sin involucrar a nuestro propio servidor. ¿Estoy en lo correcto?