在我的网站和 wordpress 博客之间共享会话

Posted

技术标签:

【中文标题】在我的网站和 wordpress 博客之间共享会话【英文标题】:Share session between my site and wordpress blog 【发布时间】:2012-07-06 16:45:10 【问题描述】:

我想知道如何在同一个域 www.mysite.com 上的我的非 wordpress 网站和我的 wordpress 博客之间共享会话,这样当用户登录到我的网站时,他也登录到了博客

我在我的网站上安装了 wordpress 作为子目录,我网站的网址是 www.mysite.com,我访问 wordpress 就像这样 www.mysite.com/wordpressBlog

在我的主站点的 user_login.php 上,我激活了

session_start();

激活 cookie 并在我的 wordpress wp_unregister_GLOBALS() 上添加了

$no_unset = array('_SESSION', ...

但是什么都没有发生,当我登录到我的主站点时,我仍然需要登录到博客

事实上,我的网站和 wordpress 博客在同一个域上。我在我的网站 url 上安装了 wordpress 作为子目录,我的网站是 www.mysite.com,我像这样访问 wordpress www.mysite.com/wordpressBlog 在我的主站点的 user_login.php 上我激活了

session_start();

为了激活 cookie,我在 wordpress wp_unregister_GLOBALS() 上添加了 $no_unset = array( '_SESSION', ...

但是什么都没有发生,当我登录到我的主站点时,我仍然需要登录到博客

【问题讨论】:

【参考方案1】:

为了能够在两个站点之间共享会话 cookie,它们必须在相同的域名下运行(例如 mysite.com)。如果会话 cookie 的范围为 mysite.com,则以下将是有效配置

www.mysite.com
blog.mysite.com

PS。我不建议使用 Cross Scripting hacks 来解决这个域范围问题。出于安全原因,它仅限于一个域。

[编辑]

我还应该指出,拥有您的两个sub-domains (sites) hosted on different servers 是完全有效的

[编辑]

由于您使用的是非 WP 网站,因此很难为您的问题提供简洁的答案。我对您的最佳建议是在WordPress StackExchange 上发帖,在那里您可能会找到以前做过此配置的人。

我相信您的问题集中在 WP 的 Cookie 范围内。 Editing your wp-config.php and setting the COOKIE_DOMAIN 使用 "" 可能有助于解决 this WordPress StackExchange post 提到的问题。

有些帖子提到要完全删除此设置。在任何情况下,您都需要一种调试 HTTP 会话的方法,以查看使用哪个范围发送的 cookie,这就是我推荐 FireBug 的原因。在任何情况下,您仍然需要重新编码您的非 WP 网站以识别 WP cookie,因此了解正在发生的事情很重要。

我确实遇到过关于 Multisite Domain Mapping 的其他帖子,这可能有助于您了解知识,但这仅涉及 WP 网站,因此不完全符合您的需要。

【讨论】:

我同意@brad 如果不在同一个域中,请不要破解。可以将用户名与远程 SQL 同步 :) 它是否也适用于通用网络应用程序,还是有其他方法可以实现这一点? @SeeBeen“远程 SQL”是什么意思? 会话 cookie 可以由同一域中的任何 Web 应用程序共享。通过远程 SQL,我的意思是您可以从您网站上的 WP 博客数据库中提取 WP 用户信息。但是,如果它在同一个域上,您可以在本地提取必要的信息,而无需远程 SQL 是的,您可以同步密码或使用OpenID 管理您的密码 我仍然需要你的帮助。我被卡住了,不知道从哪里开始

以上是关于在我的网站和 wordpress 博客之间共享会话的主要内容,如果未能解决你的问题,请参考以下文章

浏览器会话存储。在标签之间共享?

ANDROID : 在 Webview 和 httpclient 之间共享会话

在 php 和 node 之间共享会话

Raspberry PI 和 Mac OSx 之间的屏幕共享 [关闭]

如何在 http 和 https 之间共享 asp.net 会话

在不同服务器上的 ReactJS 和 WIX Web 应用程序之间共享会话