如何在每个租户拥有多个用户的laravel中拥有一个多租户数据库?

时间:2015-09-30 11:29:13

标签: php mysql laravel multi-tenant laravel-5.1

所以我试图理解多租户数据库方法是如何工作的,但我在某些地方感到困惑。我试图在Laravel和MySQL中使用它

据我所知,我可以为我的应用程序中的每个租户建立一个数据库,因此当用户登录时,我可以检查它是哪个租户并更改数据库连接以使用他们的数据库。我猜这是它的工作原理。

但现在我开始感到困惑。登录到应用程序的租户将能够创建用户并为其分配角色,这意味着有超级管理员可以创建所有租户,但是还有一个特定租户的超级管理员将为该实例创建用户。租户本身。

那么现在我将如何在这种情况下对用户进行身份验证。例如,我可以对租户进行身份验证,然后将数据库连接更改为相应的数据库,但是我必须登录该特定租户的用户,如何在会话中同时保留两个登录?< / p>

我猜一个多身份验证包(比如Multi Auth)可能有助于这样做但是因为我是新手,所以我大多模糊。

我正在跳跃某人已经遇到过这个问题并且可能能够帮助我。

1 个答案:

答案 0 :(得分:2)

首先,我假设您有充分的理由拥有多个数据库,而不仅仅是允许所有用户都在同一个表中。通常这是因为您有一个特别重的数据应用程序,安全状况,或者您只是希望能够轻松地在CRM等应用程序中分离客户端数据。

其次,如果我要使用多个数据库,我仍然会依赖Laravel来控制对数据库的访问。 Laravel将在其所有查询中使用管理级凭据,但在您的应用程序中,您将使用Laravel的Auth层来控制对特定路由和操作的访问。