两个WordPress之间的单点登录系统安装在不同的服务器上

时间:2012-12-14 作者:Hugh Lashbrooke

这本质上是重复this question, 但它还没有得到回答。

我正在尝试在使用不同数据库的不同服务器上的两个单独WordPress安装之间创建SSO系统。主站点有一个完整的数据库,包括一个包含300000多个用户的用户表。由于users表的大小,我们不希望在第二个站点上复制每个用户,也不希望在传统的SSO系统中,每个用户登录时都在数据库中创建。理想情况下,我们希望引用主站点上的用户表,并在第二个站点上使用相同的用户。

到目前为止,我已经尝试使用wp\\u remote\\u post()将用户对象发送到第二个站点,同时覆盖可插入站点。php函数并使用发布的用户对象设置$current\\u user global。然而,这并不像我所希望的那样有效,因为WP\\u用户对象中通常可用的方法在发布的对象中不可用,这会导致在使用$User->exists()等方法时出现致命错误。

我知道CUSTOM\\u USER\\u TABLE解决方案,但在本例中,这显然不起作用,因为站点位于具有单独数据库的单独服务器上。

TL;DR: 需要SSO。单独的服务器。帮助

2 个回复
最合适的回答,由SO网友:Hugh Lashbrooke 整理而成

在大量搜索和询问比我更了解的人之后,我得出结论,这是不可能的,主要是因为它需要两个并发的DB连接。

最后,我的SSO解决方案是构建一个更传统的SSO系统,使用主站点的用户数据在远程站点创建用户。它还会在每次登录时更新它们,以确保配置文件始终保持最新。

SO网友:javipas

我确实认为这是可能的。事实上,我正试着自己去做。我是WPMUdev最近的高级用户。org,在他们的支持论坛上有几个关于这个主题的主题。

虽然安装Wordpress Multisite从一开始就可以访问该选项,但如果您有不同的域,则必须为每个域创建一个网络,然后使用多域等插件“连接”它们,as explained here

我还没能以正确的方式设置它,所以我一直在尝试User Synchronization 这个插件非常有用,因为一旦用户在一个博客上注册,它也会在其他博客上注册。缺点:您仍然必须登录您访问的每个站点。

我想补充一个明确的解决方案,但这可能是一个很好的起点。

结束