He desarrollado una API simple para permitir la comunicación entre mis aplicaciones de Android/iPhone y mi servidor. En mi aplicación, los usuarios deben autenticarse y lo hacen utilizando las credenciales de usuario/contraseña con la siguiente llamada a la API:Facebook Connect para autenticar en una API personal
http://api.myapp.com/login?user=xxx&pass=pass
aplicación recibe a cambio:
{ "api_token": "xxxx-xxxx-xxxx-xxxx" }
Así que básicamente intercambiar mis credenciales contra api_token
.
Me gustaría agregar el soporte de Facebook Connect. He utilizado con éxito el SDK de Facebook y recibo el access_token
correcto.
Sin embargo, tengo que poner en práctica un mecanismo de intercambio access_token
con api_token
Suponiendo que el usuario ya se haya conectado a su cuenta en Facebook (en su panel de usuario de la web), ¿cuál sería la mejor aplicación para proceder al intercambio ?
Este es el escenario que me preocupa: Aplicación A adquiere un token de acceso fb de usuario con permisos X. Ap A visita su URL de inicio de sesión en 'http://api.myapp.com/login/facebook ? access_token = ... ' Dado que ahora tiene el token de acceso que ha adquirido la aplicación A, ahora tiene todo el mismo acceso al usuario que ellos, sin que el usuario le haya dado permiso para hacerlo (ellos ' solo se otorgó permiso a la aplicación A). Aunque puedo ver esto como defendible de varias maneras, todavía parece algo erróneo, y potencialmente una violación de la confianza del usuario. ¿Qué opinas? –
Bueno, sí, tienes razón, pero en lo que a mí respecta, somos la "Aplicación A". En mi humilde opinión, es lo mismo que un usuario que se suscribe a nuestro boletín: podemos enviar spam al usuario o vender el correo electrónico a un montón de terceros, pero no lo hacemos porque somos una empresa responsable (con responsabilidad ante la ley) – EricLarch