我正在尝试让多个网站使用相同的数据库和代码,但这会强制每个用户拥有自己的每个网站的登录信息。
我已经看到了一些关于如何完成这项工作的建议,但我不确定该走哪条路。
我正在使用Sites Framework,使用子域来识别当前站点,所以我根本不使用SITE_ID。
任何人都可以帮忙吗?
我非常喜欢数字1的想法,但我只需要在get_user()方法中获取请求,这样我就可以做到这一点
def get_user(self, user_id):
try:
# I can't do this because there is no request available here
return User.objects.get(pk=user_id, site=request.site)
except User.DoesNotExist:
return None
阻止登录到一个站点的用户使用同一会话登录到另一个站点。
答案 0 :(得分:0)
我是如何实际操作的,不是为了用户而是为了常见的数据库,是设计一个带有REST API架构的主要隐藏应用程序。我的其他应用程序自然拥有自己的数据库,并根据需要通过批处理或流处理交换数据。我使用django-rest-framework。
对于您的情况,我要做的是每当用户发出登录请求时,我会通过HTTPS将其发送到我的主数据库并在我的主应用程序中进行身份验证。每当我需要验证用户状态时,我只需向主应用程序发出get请求。
这种架构与许多移动应用程序没有什么不同。
我希望它有所帮助。