Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 集中登录系统重定向_Php_Database_Codeigniter_Database Design_Multi Tenant - Fatal编程技术网

Php 集中登录系统重定向

Php 集中登录系统重定向,php,database,codeigniter,database-design,multi-tenant,Php,Database,Codeigniter,Database Design,Multi Tenant,我有一个web应用程序,我需要为多个客户端复制它 每个客户机都有自己的服务器空间和数据库 每个数据库将为每个客户机提供一个用户表,并且它们具有相互独立的数据 客户端可以通过子域URL访问其站点。 一个客户端的URL可能如下所示:www.abcgroup.example.com(客户端:abcgroup) 我想在www.example.com/login上有一个集中登录页面 客户登录后,他将自动重定向到abcgroup.example.com,而无需键入自己的子域URL。 这个网站设法做到了 问题

我有一个web应用程序,我需要为多个客户端复制它

每个客户机都有自己的服务器空间和数据库

每个数据库将为每个客户机提供一个用户表,并且它们具有相互独立的数据

客户端可以通过子域URL访问其站点。 一个客户端的URL可能如下所示:www.abcgroup.example.com(客户端:abcgroup)

我想在www.example.com/login上有一个集中登录页面

客户登录后,他将自动重定向到abcgroup.example.com,而无需键入自己的子域URL。 这个网站设法做到了

问题是我有多个数据库和多个用户表。那么,如何从一个登录页面全局验证用户

我不确定是否必须检查客户端数据库中的所有用户表

我需要读取所有用户表吗?(我正在使用Codeigniter 2)

谢谢

2种方法:

  • 拥有一个拥有所有用户的中央数据库。这确保所有用户都是唯一的。如果有多个数据库,您可能会遇到重复的用户
  • 让用户在登录页面中选择或键入子域。一些网络应用程序可以做到这一点

  • 您应该在一个数据库中至少有一个用户表,这样您就可以进行登录,然后请检查更新。感谢科米拉德的评论。我拥有多个数据库的原因是我需要将数据彼此隔离。我不能为所有的客户端架构建立一个数据库,因为它太复杂了,我们无法管理。这个实现是否有解决方法,以便我可以从一个登录页面重定向?您可以将用户克隆到单个数据库。接下来,应针对该数据库查询唯一性验证。或者,您可以拥有一个单独的“产品所有者”帐户,他们使用该帐户来管理与您的“订阅”。(atlassian/jira就是这样处理的)我认为没有一个可扩展的解决方案可以查询多个数据库。