如何允许一个站点的现有用户使用相同的登录凭据登录另一站点

时间:2018-08-27 10:16:11

标签: php mysqli

问题陈述

如何允许具有一个站点/域的登录凭据的用户使用相同的登录凭据登录到另一站点/域。

例如

一个人有两个网站。假设有很多用户的xyz.com和abc.com是新用户,因此此人希望允许xyz.com的现有用户使用与xyz.com相同的登录凭据访问网站abc.com,反之亦然

注意::abc.com是使用WordPress开发的,xyz.com是使用PHP的。

请告诉我们实现此功能的可能方法是什么?

1 个答案:

答案 0 :(得分:1)

好吧,我不知道为什么这个家伙被这么低估了,但我会花点时间回答:

您不应该考虑共享数据库。至少不是直接的。 您可以看一下这篇文章,以了解原因:https://softwareengineering.stackexchange.com/questions/105786/should-i-use-one-database-per-application-or-share-a-single-database-amongst-mul

接受的答案:

  

这些天空间很便宜,所以我建议每个数据库使用一个数据库   应用。

     

为多个应用程序共享一个数据库有一些   严重的缺点:

     

使用相同数据库的应用程序越多,则可能性越大   您遇到了性能瓶颈,并且无法轻松扩展   所需的负载。 SQL数据库无法真正扩展。你可以买   更大的机器,但它们在群集中的伸缩性不好!

     

维护和开发成本会增加:开发更困难   如果应用程序需要使用不适合的数据库结构   用于当前的任务,但必须使用它们,因为它们已经存在。   一个应用程序的调整也可能有偏向   对其他应用程序的影响(“为什么会有如此不必要的   触发??!“ //”我们不再需要该数据了!“)。已经很难了   当开发人员使用单个应用程序的一个数据库时   不/不知道所有用例。

     

管理变得更加困难:哪个对象属于哪个对象   应用?混乱上升。我必须在哪里寻找资料?哪一个   用户被允许与哪些对象进行交互?我可以授予谁?

     

升级:您需要的版本是最低公分母   对于使用它的所有应用程序。这意味着某些应用   将无法使用强大的功能。你必须坚持   旧版本。这也会增加开发成本。

     

并发:您真的可以确定没有按时间顺序排列   流程之间的依赖关系?如果一个应用程序修改了数据怎么办   已过时或应由其他应用程序更改的   第一?在同一张表上工作的不同应用程序呢?   并发?

     

与此相比,数据导入/ ETL流程几乎总是很漂亮   简单明了。根据需要加载数据,   空间很便宜。您可以考虑每个应用程序的可伸缩性   独立地,根据需要调整和调整结构,以及   不会有并发问题。副作用可以追溯到很多   也更容易。

     

编辑:不过,我想指出的是,如@Saeed所述,如果您   可以将数据操作封装在服务中   可用,则更容易共享一个数据库与多个数据库   应用程序。只要您不需要原始访问权限,那就非常好   方法。

这表示,您的两个网站都不应共享其域/数据库。但这并不意味着一个站点不能使用另一个站点提供的服务。这实际上是一个好主意。

假设某人在xyz.com上并想访问abc.com。该用户将有两种可能性:

  • 创建一个新帐户
  • 使用xyz.com凭据连接。

在第二种情况下(这是我们感兴趣的一种情况),abc.com将使用xyz.com公开的服务,以了解用户是否可以连接。

如果xyz.com对请求作出肯定响应,则可以将用户视为已登录。 然后,您可以选择将用户保留在abc.com数据库中,以避免用户下次要连接时调用xyz.com服务。它还允许abc.com具有xyz.com用户的某种副本,该副本可以通过abc.com进行充实

要获得有关您的问题的更有价值,更准确的答案,建议您继续进行https://softwareengineering.stackexchange.com/,这可能是一个提出问题的好地方;)