You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将主域名的WordPress Cookie共享至所有子域名?

实现WordPress主站Cookie共享至所有子域名的方法

嘿,这个问题我之前帮别人处理过,其实就是调整WordPress的Cookie配置,再配合子站的验证逻辑就能搞定,一步步来:

1. 修改WordPress核心Cookie配置

WordPress默认的Cookie是绑定主域名的,得改成通配符域名让所有子域名都能识别。打开主站的wp-config.php文件,在/* That's all, stop editing! Happy publishing. */这行之前添加以下代码:

define('COOKIE_DOMAIN', '.hello.com');
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');

解释下:

  • .hello.com 是通配符域名格式,意味着所有以hello.com为后缀的子域名(比如world.hello.com)都能读取这个Cookie
  • COOKIEPATH和SITECOOKIEPATH设为/,确保Cookie在整个域名下的所有路径都生效

2. 强制更新登录时的Cookie域名

有时候WordPress不会自动更新已有Cookie的域名,所以我们可以加个钩子函数,在用户登录时强制把认证Cookie的域名改成通配符格式。打开当前主题的functions.php文件,添加这段代码:

add_action('set_auth_cookie', 'custom_auth_cookie_domain', 10, 3);
function custom_auth_cookie_domain($auth_cookie, $expire, $user_id) {
    $cookie_domain = '.hello.com';
    // 更新三个核心认证Cookie的域名
    setcookie(SECURE_AUTH_COOKIE, $_COOKIE[SECURE_AUTH_COOKIE], $expire, COOKIEPATH, $cookie_domain, is_ssl(), true);
    setcookie(AUTH_COOKIE, $_COOKIE[AUTH_COOKIE], $expire, COOKIEPATH, $cookie_domain, is_ssl(), true);
    setcookie(LOGGED_IN_COOKIE, $_COOKIE[LOGGED_IN_COOKIE], $expire, COOKIEPATH, $cookie_domain, is_ssl(), true);
}

这个函数会在用户登录触发set_auth_cookie动作时,重新设置三个核心认证Cookie的域名,确保子域名能正确读取。

3. 非WordPress子域名站点的登录状态验证

因为你的子站不是基于WordPress的,所以需要自己写逻辑来读取并验证主站的Cookie:

  • 首先,子站可以读取主站的wordpress_logged_in_xxxxxx Cookie(这个名称里的哈希串是WordPress自动生成的,你可以在主站的wp-config.php里查看LOGGED_IN_COOKIE常量的值,或者直接通过$_COOKIE遍历找到)
  • 然后,子站需要验证这个Cookie的有效性:
    1. 最简单的方式是在主站开发一个自定义API接口,子站把Cookie内容发送给这个接口,主站内部调用WordPress的is_user_logged_in()等函数验证,返回登录状态和用户信息
    2. 如果子站和主站在同一服务器,也可以直接连接WordPress的数据库,通过Cookie里的用户ID和哈希值去wp_usermeta表验证,但这种方式要注意数据库连接的安全性,避免泄露敏感信息

安全注意事项

  • 一定要使用HTTPS协议!上面的代码里is_ssl()会把Cookie标记为Secure,只有HTTPS传输才会发送Cookie,避免被窃听
  • Cookie里的哈希值是加密的,不要尝试在子站直接解密,最好通过主站的接口来验证
  • 如果主站启用了双因素认证,子站的验证逻辑也要考虑这一点,确保只有通过双因素的用户才被认定为已登录

内容的提问来源于stack exchange,提问作者Youz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:24:53