【问题标题】:Multi-tenant Authentication多租户身份验证
【发布时间】:2013-11-13 13:00:03
【问题描述】:

我刚开始使用来自 Django 的 Meteor。我正在尝试开发一个允许具有多个用户的多个组织的应用程序。用户并不都有电子邮件地址,所以我使用的是用户名身份验证。

现在,我将用户的 organizationId 存储在 Meteor.user().profile 中,但有一个小问题:多个组织中可能有一个 John Smith,都想要相同的用户名:jsmith。

我最初考虑让他们为每个用户使用类似的东西:jsmith.organization,但这似乎不是一个好的解决方案,因为这些组织中的许多都希望在任何地方使用相同的用户名。

在 Django 中,我通过使用自定义身份验证后端并将组织代码字段添加到登录页面的用户名和密码字段上方来完成此操作。我可以用 Meteor 做一些类似(或更好)的事情吗?

谢谢

【问题讨论】:

  • 组织有唯一的网址吗?例如www.example.com/organizationx
  • @MrD:不,但这可能是一种可能性,尤其是如果这样做更容易实现的话。
  • 我可以想到一种方法,您可以在用户不知道或不需要知道的情况下将组织附加到用户名。这行得通吗?
  • @MrD:这可能行得通。只要他们登录时,他们就不必手动将组织附加到他们的用户名。

标签: authentication meteor multi-tenant


【解决方案1】:

正如@MrD 建议的那样,将组织透明地添加到用户名是解决此问题的一种简单方法。

您可能会有每个组织的专用登录 URL,因此您会知道要使用哪个组织。您还可以有一个全局登录,用户也可以在其中选择一个组织。

查看accounts-entry 包以获取手动调用核心accounts-ui 包通常为您执行的身份验证方法的示例: https://github.com/BeDifferential/accounts-entry

【讨论】:

  • 这基本上是我最终做的,只是我在用户名上方添加了一个组织字段。我已经创建了自己的自定义登录下拉列表,所以这很简单。然后,我将其连接用户名和组织代码。我还向 Meteor.users 添加了一个转换,以便它将组织代码从用户名中剥离出来,以便在用户管理部分显示。
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 2022-10-24
  • 2021-11-17
  • 2022-01-20
  • 2016-12-06
  • 1970-01-01
  • 2020-12-01
  • 2018-12-19
相关资源
最近更新 更多