是否在两个安装之间共享登录/注销会话?

时间:2015-04-09 作者:Crafty Mc

我在两次安装中共享用户会话时遇到一些问题。

(a) 网站位于http://stolenmx.com(b) 网站位于http://arcade.stolenmx.com

我已经将B安装在与A相同的数据库中,并且我已经定义了user和user_meta表,所以我正在共享用户数据和用户等,但我似乎无法连接会话。

我尝试了几种不同的方法来使用cookie,但都不管用。

这是我目前在(b)wp config中使用的,没有任何效果,

define(\'COOKIE_DOMAIN\', \'www.stolenmx.com\');
define(\'COOKIEPATH\', \'/\');     
有人知道如何让它工作吗?

实际上,我在站点(a)上使用UserPro来管理注册和登录,我有wp登录。php已禁用。这可能是因为UserPro将cookie保存在其他地方或根本不使用cookie而导致cookie不起作用的原因吗?

2 个回复
SO网友:TheDeadMedic

您还需要定义匹配COOKIEHASH 对于这两个站点-一个随机的32位字符串就可以了。

默认情况下,COOKIEHASH 是站点URL的MD5哈希,用于为所有与身份验证相关的Cookie生成默认名称。因此,为什么目前您的跨域登录不起作用(cookie的名称不一致,如COOKIEHASH 每个站点将有所不同)。

看见wp_cookie_constants() 了解更多信息。

总而言之wp-config.php 对于这两个站点,应如下所示:

define( \'COOKIE_DOMAIN\', \'.stolenmx.com\' ); // Dot prefix
define( \'COOKIEPATH\',    \'/\' );
define( \'COOKIEHASH\',    md5( \'stolenmx.com\' ) );

define( \'CUSTOM_USER_TABLE\',      \'wp_users\' );
define( \'CUSTOM_USER_META_TABLE\', \'wp_usermeta\' );

SO网友:TEKFused

除了HeadMedic的答案外,两个站点必须在wp配置中共享相同的密钥和盐。php文件(我将字符串替换为四个零):

define(\'AUTH_KEY\',         \'0000\');
define(\'SECURE_AUTH_KEY\',  \'0000\');
define(\'LOGGED_IN_KEY\',    \'0000\');
define(\'NONCE_KEY\',        \'0000\');
define(\'AUTH_SALT\',        \'0000\');
define(\'SECURE_AUTH_SALT\', \'0000\');
define(\'LOGGED_IN_SALT\',   \'0000\');
define(\'NONCE_SALT\',       \'0000\');
我为此写了一篇博文,其中有更多详细信息:https://www.tekfused.com/wordpress/sharing-login-cookies-among-wordpress-installs/

结束

相关推荐

Reset a site in multisite

我很好奇这是否可能,当你有一个多站点时,你总是至少有一个站点。无法删除此网站,因为它是主网站。如何重置此站点,即重置站点数据库、删除所有帖子、插件、主题(接受主题和插件的默认设置)、删除所有图像和其他媒体?基本上恢复到默认安装?是否有“清理”网站的插件?使用网络上的其他站点,您可以删除它们并解决问题,但如何清理主站点?