首页 > 解决方案 > Django Allauth 和 G 套件,如何处理多个域?

问题描述

我们目前正在开发一个 Django CRUB 风格的 web 应用程序,其中多个“租户”每个都有自己的“成员”(链接到该租户的用户)、“课程”等。

我们想包括一个“用谷歌登录”选项,因此转向了 Django-allauth。大多数租户使用带有自己[name]@[tenant].com地址的 Google G 套装。

在创建帐户后将用户分配给他们的租户,为了防止租户 B 的用户在租户 A 中创建帐户,我们包含了一个功能,该功能检查电子邮件的域是否与租户对象。只有当这种匹配确实发生时,才会创建帐户。

然而,最近我们的一位租户开始使用超过 1 个电子邮件域,这需要我们更新代码和租户对象。(使代码处理多个电子邮件域,改变模型以便租户可以拥有多个电子邮件域)

这让我们想知道是否有更好的方法来做到这一点——我们一直在调查谷歌是否提供了company_id回复,或者任何可以帮助我们识别除电子邮件域之外的公司的东西。这些值可以帮助我们检查用户是否确实属于该租户,而无需不断检查/更新电子邮件域字段 - 但我们无法找到任何此类内容。

对这个类似的 stackoverflow 问题的回应表明了与我们目前采用的方法类似的方法,但那是五年前的事了——这仍然是最好的方法吗?

标签: djangodjango-allauthgoogle-workspace

解决方案


推荐阅读