Estoy tratando de insertar facebook auth en mi aplicación. Mi esfuerzo inicial fue iniciar sesión en el navegador y obtener el código. Devuelvo este código a mi api y obtengo el token de acceso (que permanece con el servidor) y dirijo todas mis solicitudes a FB Api a través de mi servidor. Me pareció totalmente seguro ya que mi cliente no tiene información para poder realizar llamadas autorizadas a FB como mi aplicación.
Sin embargo, he estado buscando en FB Javascript SDK para evitar escribir código para abrir y cerrar diálogos y he notado que me permite getLoginStatus
y me devuelve el token de acceso. Además, repasé los flujos de autenticación FB en su documentación y dicen que el flujo híbrido de cliente-servidor está bien para hacer donde el servidor realmente entrega el "token de acceso de larga duración" al cliente y me aconseja usar HTTPS (justo).
Ahora todo esto me hace pensar si se trata de un problema de seguridad. ¿No puedo, como potencial pirata informático, inyectar un poco de javascript en la página web del usuario que podría
a) hacer un getLoginStatus
y obtener el token de acceso o b) solo obtener el token de acceso al realizar una solicitud a mi api server y obtenga el token de acceso
y luego utilícelo para publicar (suponiendo que el usuario autorizó mi aplicación para hacerlo) en Facebook como si mi aplicación lo estuviera haciendo.
Soy un novato en seguridad y quizás esté pasando por alto un montón de cosas aquí, pero ¿podría alguien ayudarme a entender lo que me estoy perdiendo?
Gracias de antemano!
PS: Sé que puedo habilitar una mayor seguridad para garantizar que necesito la aplicación secreta cada vez que quiero hacer una solicitud que el cliente no puede hacer ya que esa información nunca estará disponible en el lado del cliente.