2017-04-18 69 views
2

我正在寻找一种方法来注册和认证使用Django和PostgreSQL用户自定义的多发防空火炮数据库。Django的用户注册和认证,以多发的数据库

的应用程序是跨国家(仍头脑风暴)。关于我们需要将用户详细信息存储在自己的国家/地区的不同法律。对于为例,美国用户必须存放在存储在存储在欧洲和加拿大用户的欧洲人在美国,加拿大的用户数据。

的问题是,Django的(1.11)目前不提供对跨越多个数据库外键或多对多一对多关系的任何支持。

于是我想出了此刻的2个选项,但我看不到完美的人。我问你是否会有更好的解决方案。

然后用旧的数据库

整合的Django

优点:支持国外数据库关系

缺点:手动迁移,手动积分,自定义脚本。

优点:更Django的集成

缺点:数据损坏的风险。我会避免它!

由于

的Django:1.11

的PostgreSQL 9.6

Python 3中

+0

Postgres支持LDAP以及Kerberos(GSSAPI)身份验证 –

回答

0

我能想到的其他两个选项:

  • 使认证在你的应用程序外部。 Django和RESTful系统本质上是模块化的。您的系统不需要为来自同一个Django的实例应用程序内容和身份验证,也没有你甚至需要使用Django进行身份验证。实际上,根据您的要求,我倾向于将身份验证卸载到可靠的第三方服务,如Google的服务。通过使用第三方服务,您可以将与您的早期开发不相关的合规/监管问题外包出去。对于Google的例子,有很多讨论。 SO上的一个在How to sign in with the Google+ API using Django?也有Facebook和其他认证选项。

  • 定制Django提供认证。我将在https://docs.djangoproject.com/en/1.11/topics/auth/customizing/

  • 开始张贴后,它发生,我认为你可能会担心两个不同的问题:

    • (一)存储认证,个人数据在正确的国家
    • (b)将所有用户数据存储在用户所在国家

    答案确实适用于a。如果您需要将所有用户数据存储在用户所在的国家/地区,则外包认证不是一个充分的解决方案。

    +0

    Thanks @sage。是的,所有用户的表格都必须存储在用户的国家/地区。这是棘手的部分。 – CMdev