WP实现多个网站用户登录注册共享 · WordPress多网站同步用户数据

如果你有多个 WordPress 网站,同时又希望这些网站能够共享同一套用户数据,那么恭喜你,这个教程会非常适合你。

本教程会使用 codexpertShare Logins Pro 插件。官网售价:终身版 $499(美元)。在我这里购买只需要 200 元(2022年9月1日前)【终生版】

在真实项目中,你可能会遇到如下几种情况(问题):

  • 你是做站群的、希望能够用一套用户体系(管理员、作者)登陆这些网站。
  • 你有一个官方商城、有同时有一个二级域名的论坛。
  • 你有一个课程官网、同时又有一个博客。

等等…这些情况都需要同步(或者叫做共享)用户数据。

以下是面对这些情况的完整解决方案:

第一步、确认自己多个网站的状态

  • 有主站、或子站的区分 —— 这种一般适用于站群管理者。因为一般站群都会有一个主控站、其余子站都自动匹配主站的用户数据。而子站的数据是不需要同步到主站的。
  • 无论任何站点、只要用户行为(注册、注销、删除用户等)都同步 —— 这种使用于官网+论坛、商城+博客等类型。即无论用户在哪儿注册,几个站点都会自动进行同步。

所以,你先要确定自己项目(多个网站)当前所需要的是上述的哪一种情况。

为了后续方便大家参考,我就用 A 站 和 B 站进行举例

第二步、安装并激活 Share Logins Pro 插件

这个插件并不在官网的插件库中。如果你需要可以从官网购买、或者从我这里购买(购买地址)。

按照要求,下载并安装插件(从我这里购买的用户只需要购买后,刷新购买页面,就可以看到下载地址以及 API 激活码)。

给小白的安装步骤:WP后台 > 插件 > 安装插件 > 上传刚才下载的插件 > 启用

安装激活之后,在 WP 后台可能会弹出【Alert: Please activate your license for Share Logins Pro】的提示:

你只需要点击【Activce License】按钮,激活即可。(如果遇到需要输入激活码的,直接输入激活码即可)

这里需要注意的是,无论 A 站、还是 B 站都需要安装这个插件

第三步、匹配 Access Token 以及 Secret Key

激活插件后,刷新后台页面,进入它的设置(setting),就会看到下面这样的界面:

选择【盾牌图标】的 Security Settings(安全设置)选项:

在右侧你会看到有三个选项:Access TokenSecret Key、以及 Secret IV 选项。一开始是默认的值,强烈建议你们立马进行更换。因为无论谁装都是这个值,你不希望别人装之后能读到你的数据吧?

这里值设置什么其实都可以,字母或数字(Alphanumeric only)。建议设置 12 位以上会保险一点。

注意:区分大小写;三个值分开设置,不要设置一样的;即使以后忘了回来看一下就行;同时 A 站 和 B站(只要需要同步的站点)这里的三个值必须同步。

第四步、设置输入和输出条件

还是刚才的插件设置界面,在左侧有三个选项:Remote SitesOutgoing RequestsIncoming Requests

Remote Sites —— 如果你是在 A 站设置,那么就需要在这里填写 B 站地址(即,B 站后台>设置>常规>站点地址 的那个网址)。同样,B 站的设置中也需要填写 A 站的地址。

Outgoing Requests —— 如果你在 A 站设置,那么就是 A 站发出的命令是否同步到 B 站。同理,如果你在 B 站设置,意思就是,B 站发出的命令,是否同步到 A 站。

发出命令是指,在 A 站上的:创建用户、更新用户信息、注销用户、删除用户等行为。

这些可以在 Outgoing Requests 选项中看到:

一般来说都是全选的(除非你有特殊的要求)。

Incoming Requests —— 即输入的命令、如果你在 A 站的设置中,这里就是控制是否接受来自 B 站的命令。相反依然。界面和 Outgoing Requests 是一样的。

这里会设置会比较让人头疼,所以我就分情况进行概述:

情况1:站群控制

如果你是做站群的(即主站 A 站、子站是 B 站 以及 C 站),那么就按照下方步骤操作:

  • A 站的 Remote Sites 填写 B 站 和 C 站;Outgoing Requests 中 B 站、C 站全开放;Incoming Requests 中不要开放。
  • B 站中 Remote Sites 只需要填写 A 站;Outgoing Requests 不开放;Incoming Requests 将 A 站全开。
  • C 站中 Remote Sites 只需要填写 A 站;Outgoing Requests 不开放;Incoming Requests 将 A 站全开。

情况2:网站数据全同步

就是所有网站数据全同步,就是第一步中的第二种情况,假设你有 A 站、B 站、以及 C 站(再多的也是这么操作),就进行如下操作:

  • A 站的 Remote Sites 填写 B 站、C 站;Outgoing Requests 全开放;Incoming Requests 中全开放。
  • B 站的 Remote Sites 填写 A 站、C 站;Outgoing Requests 全开放;Incoming Requests 中全开放。
  • C 站的 Remote Sites 填写 A 站、B 站;Outgoing Requests 全开放;Incoming Requests 中全开放。

如果这里还是不清楚的,可以看官方的英文说明(https://help.codexpert.io/)。我个人认为官方的还没有我写的全面。

当然如果你是从我这里购买的,也可以来问我(购买之后,刷新购买页面会有我的 QQ)。特别 213 的问题就别问了,我这个教程已近写的很全了,多读几遍。

第五步、验证数据

还是在插件设置界面,左侧有个 Validation 的选项,只要你设置过 Remote Sites 这里就会出现对应的网站。

点击网址前面黄色的 Validation 按钮进行验证,一般需要几秒钟,就会弹出如下画面:

  • Connectivity —— 即第一块,代表 A 站 B 站 是否能链接上。链接不上,那就是【第三步】你没设置好。经常出现的有:多余【空格】、带有【特殊字符】、【网址填写错误】之类 213 的问题。匹配不上就好好查一查设置,多验证几次。
  • Remote site —— 如果你在 A 站,这里就是 B 站的情况。Accepts From 就是是否接受来自 B 站的命令、Sends To 就是是否发送命令到 B 站。
  • Current site —— 如果你在 A 站,这里就是 A 站的情况。具体和上方的一样(脑子绕不过弯的自己画图)。

也就是说,验证需要【第一个板块全绿色】剩余板块,更具自己的实际的情况来定。因为请求是【双向的】,所以 A 站要【同意命令发送】,B 站要【同意 A 站的命令接受】才能生效。

实际情况,可以参考我在【第四步】中写的。其中的逻辑大家自行画图梳理。

第六步、额外设置(可以不设置)

有一些额外的功能,可能让你的设置更加的个性化。

特殊情况 1、网站已经有了很多用户数据,如何进行同步呢?

这个时候是需要选择设置界面的 Migrate Users 功能。在 A 站将用户导出(Export),然后在 B 站进行导入(Import)。

同时你还可以在 Exclude Roles 中选择你需要导出的用户角色(管理员、普通用户、还是其他类型)。

甚至,你可以在 Exclude Users 中设置不需要导出的用户ID用户ID 可以通过数据库、URL、或者是后台进行查看)。

特殊情况 2、我只需要同步特别的用户角色,应该怎么办?

你只需要进入设置界面的 Basic Settings 部分,那里有个 Allowed User Roles 选项。假设你只需要 A 站保留普通用户的数据,那么只需要在 A 站中将 Allowed User Roles 中添加一个 Subscriber 即可。如果不填写,就是默认所有都可以同步。

特殊情况 3、 我的站群是由多个人管理,我希望看到同步记录,怎么办?

你只需要进入设置界面的 Basic Settings 部分,那里有个 Enable Log 选项,即日志功能。打开即可看到日志,其中详细记录了用户是从哪个网站注册的、从哪个网站删除的、等等此类信息。

总结

整体来看设置多个 WordPress 的网站,同时同步用户数据并不复杂。只需要把握好主站和子站点之间的关系,并设置好参数就可以。建议新手在设置之前先画好逻辑图,然后再进行配置。