wordpress 设置COOKIE_DOMAIN共享cookie不工作

dfty9e19  于 2023-06-21  发布在  WordPress
关注(0)|答案(2)|浏览(215)

我有WordPress的网站www.something.com,和另一个PHP脚本子域www.panel.something.com我的PHP脚本有自己独立的数据库和用户表我试图实现单点登录从Wordress和删除注册和登录过程中我的PHP脚本子域我按照这个答案在这里Single Sign On with SubDomains
作为第一步,我试图启用COOKIE的主域和子域,但当我把这个在我的wp-config.php它不让我登录到WordPress

define( 'COOKIE_DOMAIN', '.something.com' );

甚至去除点

define( 'COOKIE_DOMAIN', 'something.com' );

不工作
我甚至试过

define( 'COOKIE_DOMAIN', 'www.something.com' );

但它不让我登录在我的主要WordPress网站
我尝试在我的www.something.com和我的子域www.panel.something.com中使用相同的cookie
谢谢

x0fgdtte

x0fgdtte1#

值得注意的是
define('COOKIE_DOMAIN', 'yourdomain.com')
必须放置在wp-config.php中此线上方:
require_once(ABSPATH . 'wp-settings.php');
它通常在文件的底部。(wp-settings.php也定义了COOKIE_DOMAIN,PHP只允许你定义一次常量)
你可以使用chrome开发工具来检查你的配置是否被应用。查看您的网站,在开发工具中转到Application选项卡,单击左侧菜单上的Cookies和您的域,然后找到名为wordpress_logged_in_<COOKIEHASH>的cookie。domain列应该与您在COOKIE_DOMAIN中设置的内容匹配。
如果该cookie未出现在列表中,则表示您未登录到当前页面。

xytpbqjk

xytpbqjk2#

对于任何在2022年甚至更晚的时候想知道的人来说,只要改变COOKIE_DOMAIN就可以了。我一直在尝试多种东西和谷歌搜索了一段时间,但这是工作正常现在。所以,只要包括这是你的wp-config.php文件:

define('COOKIE_DOMAIN', 'domain.com') // note there is no dot nor www.;

来源:https://www.php.net/manual/en/function.setcookie.php

域名

Cookie可用于的(子)域。将此设置为子域(如“www.example.com”)将使cookie可用于该子域及其所有其他子域(即“www.example.com”)。w2.www.example.com)。要使cookie对整个域(包括其所有子域)可用,只需将该值设置为域名(本例中为'example.com')。
仍在执行已弃用的» RFC 2109的较旧浏览器可能需要前导。以匹配所有子域。

相关问题