Cómo hacerlo extensible
Primero debe notar que todas estas API usan el mismo mecanismo para iniciar sesión. Todas usan OAuth para su autenticación. Debe aprovechar esto comenzando con una biblioteca general de OAuth. No use sus propias bibliotecas para la autenticación, estas serán inutilizables para otros proveedores. Si te acostumbras a OAuth2, es bastante fácil agregar más proveedores.
Desafortunadamente, necesita dos de ellos, porque Twitter aún no ha subido al tren de OAuth2.
OAuth necesita que cree una interfaz para la parte que autentica. Los tokens se intercambiarán de servidor a servidor. Cree un punto de entrada, que pueda manejar toda la comunicación.
El token debe almacenarse en una tabla separada de su cuenta, esto se debe a que pueden ser múltiples tokens y múltiples perfiles vinculados. Algunos servicios le dan dos tokens, uno de ellos es un token de actualización.
Ahora diseña una interfaz, que encapsula la otra funcionalidad que necesita. Yo personalmente configuraría un servicio REST separado para esto. De esta manera, puede extender fácilmente la autenticación a otros lugares.
Algunos servicios utilizan JSON para comunicarse, otros utilizan XML, etc. Para el usuario frontal, debe unificarlos a todos. Este es un proceso bastante doloroso, pero es posible derivar algunos puntos comunes aquí.
Otro problema aquí es que no todos los servicios ofrecen la misma funcionalidad. Esto puede significar que sus servicios no pueden proporcionar la API completa como usted especificó. Debe tener una estrategia aquí, que permita que la aplicación baje de categoría con gracia.
Todo esto asegurará que pueda agregar fácilmente nuevos proveedores de terceros.
Problemas de token
Los tokens están limitados en el tiempo, por lo que necesita un par de trabajos cron, que pueden verificar si el token todavía es utilizable, de lo contrario, debe eliminarlo. También puede actualizar un token mediante este mecanismo.
A veces sucede que un usuario retrae el token. Prepárate para esto.
Almacenamiento de datos
Si tiene este diseño, debe pensar en los datos que necesita. Esto se debe en parte a su interfaz recién creada. Diseñe algunas tablas para esto y observe si los datos son realmente recuperables. Algunos servicios no le permiten obtener muchos datos. También debe tener en cuenta que cuantos más datos necesite, más pesados serán los mensajes de privacidad. Por lo tanto, sea modesto en sus necesidades, de lo contrario los usuarios no lo usarán.
Para una verificación adicional, puede almacenar los perfiles en una tabla separada pero vinculada a sus usuarios. Esto le proporcionará mucha más información sobre alguien.
Consulte también sus leyes locales, para algunos datos necesita precauciones adicionales.
Lo último
No cometa la culpa de no crear una cuenta en sus propios servicios. Si se excluye al usuario de Facebook, no podrá iniciar sesión en su servicio. Esta es una situación que no quieres crear. Esto a menudo se pasa por alto.