• 欢迎@方程式 @小云 加入我们
  • Register

WordPress多站点解决二级域名的单点登录

WordPress多站点有两种形式:子目录subdirectory和子域名subdomain,在子域名方案中,cookie 无法共享,因此也就难以实现多站点的SSO单点登录。

查阅资料发现 wp-includes/ms-default-constants.php 文件中有如下代码:

if( !defined( 'ADMIN_COOKIE_PATH' ) ){
	if( ! is_subdomain_install() || trim( parse_url( get_option( 'siteurl' ), PHP_URL_PATH ), '/' ) ){
		define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH );
	}else{
		define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
	}
}

其中 define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' ); 将cookie的有效路径指定为 /wp-admin,其他单点都不能共享auth_cookie,解决办法也比较直接,只需要在 wp-config.php 中增加如下代码段即可:

define('COOKIE_DOMAIN', '.xxx.com');
define('ADMIN_COOKIE_PATH', '/');

其中 COOKIE_DOMAIN 设置为多站点的主域名。

版权声明:转载请注明来自杨俊伟博客,本文地址:http://yangjunwei.com/a/1207.html
除非注明,杨俊伟博客文章均为原创,转载请注明出处和链接!
 

发表评论 

我还是想用邮箱注册

登录

忘记密码 ?

用第三方帐号快捷登录

已有账户?前往登录吧~

注册