如何在每个租户都有多个用户的 laravel 中拥有一个多租户数据库?
How to have a multi tenant database in laravel where every tenant has multiple users?
所以我试图了解多租户数据库方法的工作原理,但我在某些地方感到困惑。我正在尝试在 Laravel 和 MySQL
中使用它
我知道我可以为我的应用程序中的每个租户创建一个数据库,因此当用户登录时,我可以只检查它是哪个租户并更改数据库连接以使用他们的数据库。我猜这就是它的工作原理。
但现在我开始感到困惑了。登录到应用程序的租户将能够创建用户并为他们分配角色,这意味着有创建所有租户的超级管理员,但也有一个特定租户的超级管理员将为实例创建用户租户本身。
那么现在我将如何在这种情况下对用户进行身份验证。例如,我可以对租户进行身份验证,然后将数据库连接更改为适当的数据库,但随后我将不得不登录该特定租户的用户,我将如何在会话中同时保持两个实体登录?
我猜测多重身份验证包(如 Multi Auth)可能有助于做到这一点,但由于我是新手,所以我大部分时间都很模糊。
我希望有人已经遇到过这个问题并且可以帮助我。
首先,我假设您有充分的理由拥有多个数据库,而不是仅仅让所有用户都在同一个表中。通常这是因为您有一个数据量特别大的应用程序、安全情况,或者您只是希望能够轻松地在 CRM 等应用程序中分离出客户数据。
其次,如果我要使用多个数据库,我仍然会依赖Laravel来控制对数据库的访问。 Laravel 将在其所有查询中使用管理级别的凭据,但在您的应用程序中,您将 Laravel 的 Auth 层控制对特定路由和操作的访问。
所以我试图了解多租户数据库方法的工作原理,但我在某些地方感到困惑。我正在尝试在 Laravel 和 MySQL
中使用它我知道我可以为我的应用程序中的每个租户创建一个数据库,因此当用户登录时,我可以只检查它是哪个租户并更改数据库连接以使用他们的数据库。我猜这就是它的工作原理。
但现在我开始感到困惑了。登录到应用程序的租户将能够创建用户并为他们分配角色,这意味着有创建所有租户的超级管理员,但也有一个特定租户的超级管理员将为实例创建用户租户本身。
那么现在我将如何在这种情况下对用户进行身份验证。例如,我可以对租户进行身份验证,然后将数据库连接更改为适当的数据库,但随后我将不得不登录该特定租户的用户,我将如何在会话中同时保持两个实体登录?
我猜测多重身份验证包(如 Multi Auth)可能有助于做到这一点,但由于我是新手,所以我大部分时间都很模糊。
我希望有人已经遇到过这个问题并且可以帮助我。
首先,我假设您有充分的理由拥有多个数据库,而不是仅仅让所有用户都在同一个表中。通常这是因为您有一个数据量特别大的应用程序、安全情况,或者您只是希望能够轻松地在 CRM 等应用程序中分离出客户数据。
其次,如果我要使用多个数据库,我仍然会依赖Laravel来控制对数据库的访问。 Laravel 将在其所有查询中使用管理级别的凭据,但在您的应用程序中,您将 Laravel 的 Auth 层控制对特定路由和操作的访问。