Estoy buscando una manera de registrar y autenticar usuarios personalizados en múltiples bases de datos usando Django y postgreSQL.
La aplicación será entre países (todavía lluvia de ideas). Con respecto a las diferentes leyes, necesitamos almacenar los detalles de los usuarios dentro de su propio país. Por ejemplo, los usuarios estadounidenses deben tener datos almacenados en los EE. UU., los usuarios canadienses almacenados en Canadá y los usuarios europeos almacenados en Europa.
El problema es que Django (1.11) actualmente no brinda soporte para claves foráneas o relaciones de muchos a muchos que abarcan múltiples bases de datos.
Así que se me ocurrieron 2 opciones en este momento, pero no puedo ver la perfecta. Te pregunto si tendrías una solución mejor.
Luego integre Django con una base de datos heredada
Pros: Admite relaciones con bases de datos extranjeras
Contras: migración manual, integración manual, scripts personalizados.
Pros: Integración Django más fácil
Contras: Riesgo de corrupción de datos. yo lo evitaria!!
Gracias
Django: 1.11
PostgreSQL 9.6
Pitón 3
Se me ocurren otras dos opciones:
Haga que la autenticación sea externa a su aplicación. Los sistemas Django y RESTful son inherentemente modulares. Su sistema no necesita servir el contenido de la aplicación y la autenticación desde la misma instancia de Django, ni siquiera necesita usar Django para autenticarse. De hecho, dados sus requisitos, me inclinaría a descargar la autenticación a un servicio de terceros confiable, como el servicio de Google. Al utilizar un servicio de terceros, externaliza las cuestiones de cumplimiento/regulatorias que podrían no ser relevantes para su desarrollo inicial. Para el caso de Google, hay muchas discusiones. Uno en SO está en ¿Cómo iniciar sesión con la API de Google+ usando Django? También hay Facebook y otras opciones de autenticación.
Personaliza la autenticación proporcionada por Django. Comenzaría enhttps://docs.djangoproject.com/en/1.11/topics/auth/customizing/
Después de publicar, se me ocurre que podría estar preocupado por dos problemas diferentes:
La respuesta realmente se aplica a a. Si necesita almacenar todos los datos del usuario en el país del usuario, entonces la subcontratación de la autenticación no es una solución suficiente.