我目前正在开发一个插件来大规模实现这一点,因为我有多个要同步的站点;但我不介意和你分享这些信息。
我(从您所说的)了解到,用户的凭据已经在site2上进行了验证,因此无需使用任何这些函数来再次验证它们。您现在需要做的就是在WordPress站点上创建会话。
这意味着您要查找的函数是wp_set_auth_cookie. 它将创建用户会话,而不需要凭据。该函数将用户ID作为第一个参数,这是最重要的,您可以在WordPress启动之前启动它(比如在functions.php文件的顶部)。
如果您想通过web服务实现这一点,出于安全原因,我建议您使用两阶段流程。首先,可以将用户ID推送到存储“经过身份验证的会话”的表中,用唯一的会话ID(某种形式的哈希、IP、用户代理等)标识用户。在第二阶段,您可以在same person 访问WP网站。
另一个选项是在site2上创建会话代码,然后将用户发送到站点1,并将该代码放在手中(query\\u string或form post)。当他们到达site1时,将使用对site2的回调来验证它,然后使用上面的函数简单地创建会话。