我需要扩展子域的cookie。领域com到所有域。com的子域(cookie术语中的domain.com)。
我正在努力将这种转变的影响降到最低。似乎用define(\'COOKIE_DOMAIN\', \'.domain.com\');
在wp config中,用户处于一种不确定的状态——他们的cookie足以进行验证,因此它不会移动到新的域范围。
有没有关于如何转换cookies的想法。子域。领域欢迎致电。领域com对用户的影响最小?
这是我一直在失败和挣扎的代码。当检测到错误哈希时,它尝试验证旧cookie(从更改AUTH_KEY
在wp配置中。php),然后尝试重新验证并将其发送回来源:
function do_report_bad_hash( $cookie_elements ) {
if( isset( $_COOKIE[\'wordpress_logged_in_\'] ) ) {
$user_id = wp_validate_auth_cookie( urldecode( $_COOKIE[\'wordpress_logged_in_\']), \'logged_in\' );
setcookie( \'wordpress_logged_in_\', \'\', 0, \'/\', \'.subdomain.domain.com\', false, true );
unset( $_COOKIE[\'wordpress_logged_in_\'] );
setcookie( \'wordpress_\', \'\', 0, \'/\', \'.subdomain.domain.com\', false, true );
unset( $_COOKIE[\'wordpress_\'] );
if ( $user_id !== false ) {
wp_set_auth_cookie($user_id);
$redirect = ( strpos($_SERVER[\'REQUEST_URI\'], \'/options.php\') && wp_get_referer() ) ? wp_get_referer() : $proto . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'];
header("Location: $redirect");
}
}
}
add_action(\'auth_cookie_bad_hash\', \'do_report_bad_hash\', 11, 1 );
最合适的回答,由SO网友:edzillion 整理而成
This answer 可能会有帮助。引用:
这里需要的基本代码是wp配置文件中的以下代码:
define(\'LOGGED_IN_COOKIE\', \'login_cookie_name\');
define(\'AUTH_COOKIE\',\'auth_cookie_name\');
define(\'COOKIE_DOMAIN\', \'.example.com\');
define(\'COOKIEHASH\', \'random_hash_here\');
将其放在多个站点的配置中,将密钥和salt设置为相同,您将拥有跨域和子域工作的登录cookie。