Php 在vBulletin论坛和status.net微博平台之间共享会话

Php 在vBulletin论坛和status.net微博平台之间共享会话,php,apache,session,vbulletin,statusnet,Php,Apache,Session,Vbulletin,Statusnet,我需要将vBulletin 4.0.3发布套件与status.net微博平台集成。 我需要做的第一件事是让这两个用户共享一个会话,这样登录到vBulletin论坛的用户也将登录到status.net,反之亦然 我在不同的子域下安装了不同的vBulletin组件: forums.sample.com-vBulletin论坛 blogs.sample.com-vBulletin博客 sample.com-vBulletin内容管理 所有这些都指向同一个位置(…/public_html/index.p

我需要将vBulletin 4.0.3发布套件与status.net微博平台集成。 我需要做的第一件事是让这两个用户共享一个会话,这样登录到vBulletin论坛的用户也将登录到status.net,反之亦然

我在不同的子域下安装了不同的vBulletin组件:

  • forums.sample.com-vBulletin论坛
  • blogs.sample.com-vBulletin博客
  • sample.com-vBulletin内容管理
  • 所有这些都指向同一个位置(…/public_html/index.php),其中包含相应的php文件(content.php for sample.com | blog.php for blogs.sample.com | forum.php for forums.sample.com),具体取决于$_服务器['HTTP_HOST']

    我已将vBulletin配置为对所有这3个域使用一个cookie.domain(.sample.com),以便访问不同的域不会中断会话

    我还有status.sample.com,它是安装status.net的子域。子域配置不同,因此文档根实际上是sample.com中的子文件夹(…/public\u html/status/)

    现在,你能给我一些关于如何让所有这些子域共享一个会话的建议吗

    我不确定它是否有用,但据我所知,status.net在默认情况下不进行自定义会话处理,但可以将其打开,以便开始将会话数据存储在名为“session”的数据库表中。默认情况下,vBulletin将会话存储在数据库中

    任何提示都将不胜感激


    谢谢。

    即使他们都分享了这个课程,对你也没用。他们必须以同样的方式使用会话,这意味着:

    • 使用相同的键存储相同的变量(或者每个应用程序在会话中,除了它需要的数据之外,其他应用程序需要的数据)
    • 除非它们使用完全相同的数据来执行登录,否则它们都必须能够访问存储在另一个应用程序会话中的用户名/定义/任何内容
    • 如果它们存储了对象,则两者都必须有权访问各自的类定义

    因此,除非您正在构建自己的应用程序并从一开始就考虑它,否则请忘记“共享会话”。像或相反地实现单点登录。

    CAS或OpenID是否允许与我计划的功能相同的功能-用户在整个站点登录/注销?使用CAS,是的。OpenID没有全局注销。status.net支持OpenID开箱即用,vBulletin不支持,但两者都不支持CAS。您真的认为将CAS引入组合比只更新两端的数据库行要简单得多吗?顺便说一句,我在我的问题中添加了一条评论,以帮助澄清您提出的一些问题。CAS很容易在基础上实现,即使不使用外部库。OpenID不是那么简单,但PEAR中有一个库。如果您想手动执行此操作,则必须在两个应用程序上挂接登录、注销和用户创建。如果您决定在将来添加第三个应用程序,则必须更改所有三个。。。记住这一点,如果您认为CAS/OpenID太麻烦,请继续。@jaz不,这不是真的。您可以使用数据库。请参阅并确定,这里有更多信息-Statusnet:简单登录后,数据字段中没有序列化对象。值得注意的数据项(除了作为主键的会话标识外)是“已启动”、“会话标识”、“用户标识”和“会话标识”。vBulletin:简单登录后,数据字段中没有序列化对象。所有条目都分为多个字段。值得注意的字段是“userid”、“sessionhash”、“idhash”、“loggedin”、“lastactivity”和“location”。如果两端都有userid匹配,那么在登录时插入一行并在两个数据库中更新started/lastactivity会有多困难?