Yii - 具有一个用户身份验证的多个数据库
Yii - multiple databases with one user authentication
我在尝试使用 Yii (v=1.1) 开发应用程序时遇到问题。客户希望应用程序具有多个数据库(每个他的客户一个)。这意味着我们将拥有未知数量的数据库。他还希望只有一个用户身份验证系统——考虑到这一点,用户可以选择(和特权)属于许多数据库。所以我正在考虑它的开发方式。
你遇到过这样的事情吗?
嗯,你应该首先更好地定义你的目标,因为我不太清楚你想要完成什么,但我是如何看待它的。
确定要存储用户的位置:
- 同一个用户是否应该能够使用相同的登录信息连接到两个不同的客户数据库?
- 您是否需要从一个地方管理所有客户的所有用户?
您可能遇到以下情况:
仅将用户存储在一个公共数据库中,而不存储在客户数据库中:
- 登录时告诉 Yii 使用 "common" 用户模型的数据库
- 您还可以拥有一个处理用户管理的通用应用程序
- 您还可以为客户提供管理他自己的用户的可能性
- 您可以在用户 table 中有一个 "customer" 字段来指示它属于哪个客户,或者您可以有一个 "users_customers" table 并在登录屏幕使用 "choose customer" 屏幕提示用户,因此一个唯一用户可以登录多个客户
仅在客户数据库中存储用户:
- 如果您不需要一个共同的地方来管理用户,或者不需要在客户之间共享它们,只需在每个客户数据库中有一个用户 table,这样用户 "alex" 可以存在于两个具有不同登录信息的数据库中
- 在这里,您可以简单地在登录表单中添加另一个字段(是的,我已经看到一个应用程序这样做)例如,而不是用户名和密码字段,要求 "Office, Username and Password",办公室将是客户数据库的名称。或者你甚至可以只使用用户名字段并强制用户输入诸如 "alex@office" 之类的东西作为用户名,然后你将它用“@”分开,你就知道它属于哪个办公室。
- 然后简单地在登录屏幕和会话中使用该信息来告诉 Yii 连接到哪个客户数据库
如您所见,可以用不同的方式完成。一旦你选择了你的方式,你就需要一个实施。
如果你不知道如何实现,也许我可以提供更多与 Yii 相关的技术信息。
我在尝试使用 Yii (v=1.1) 开发应用程序时遇到问题。客户希望应用程序具有多个数据库(每个他的客户一个)。这意味着我们将拥有未知数量的数据库。他还希望只有一个用户身份验证系统——考虑到这一点,用户可以选择(和特权)属于许多数据库。所以我正在考虑它的开发方式。
你遇到过这样的事情吗?
嗯,你应该首先更好地定义你的目标,因为我不太清楚你想要完成什么,但我是如何看待它的。
确定要存储用户的位置:
- 同一个用户是否应该能够使用相同的登录信息连接到两个不同的客户数据库?
- 您是否需要从一个地方管理所有客户的所有用户?
您可能遇到以下情况:
仅将用户存储在一个公共数据库中,而不存储在客户数据库中:
- 登录时告诉 Yii 使用 "common" 用户模型的数据库
- 您还可以拥有一个处理用户管理的通用应用程序
- 您还可以为客户提供管理他自己的用户的可能性
- 您可以在用户 table 中有一个 "customer" 字段来指示它属于哪个客户,或者您可以有一个 "users_customers" table 并在登录屏幕使用 "choose customer" 屏幕提示用户,因此一个唯一用户可以登录多个客户
仅在客户数据库中存储用户:
- 如果您不需要一个共同的地方来管理用户,或者不需要在客户之间共享它们,只需在每个客户数据库中有一个用户 table,这样用户 "alex" 可以存在于两个具有不同登录信息的数据库中
- 在这里,您可以简单地在登录表单中添加另一个字段(是的,我已经看到一个应用程序这样做)例如,而不是用户名和密码字段,要求 "Office, Username and Password",办公室将是客户数据库的名称。或者你甚至可以只使用用户名字段并强制用户输入诸如 "alex@office" 之类的东西作为用户名,然后你将它用“@”分开,你就知道它属于哪个办公室。
- 然后简单地在登录屏幕和会话中使用该信息来告诉 Yii 连接到哪个客户数据库
如您所见,可以用不同的方式完成。一旦你选择了你的方式,你就需要一个实施。
如果你不知道如何实现,也许我可以提供更多与 Yii 相关的技术信息。