2010-05-25 176 views
0

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

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

  1. forums.sample.com - vBulletin论坛
  2. blogs.sample.com - vBulletin博客
  3. sample.com - vBulletin内容管理

所有这些指向相同的地方(.../public_html/index.php),其中包括各自的PHP文件(sample. blog.php为blogs.sample的content.php。 com | forum.php为forums.sample.com)取决于$ _SERVER ['HTTP_HOST']

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

我也有status.sample.com,这是status.net安装的子域。子域配置是不同的,所以document_root实际上是sample.com中的一个子文件夹(.../public_html/status /)

现在,你可以给我一些关于如何使所有这些子域共享一个会话的指针?

我不确定它是否有帮助,但据我所知,status.net默认情况下没有自定义会话处理,但可以打开它,因此它会开始将会话数据存储在名为“会话”。 vBulletin默认将会话存储在数据库中。

任何提示将不胜感激。

谢谢。

+0

好的,这里是更多信息 - Statusnet:简单登录后,数据字段中没有序列化的对象。值得注意的数据条目(除了session_id作为主键)是'started','session_id','user_id'和'session_token'。 vBulletin:简单登录后,数据字段中没有序列化对象。所有条目都被分隔成几个字段。值得注意的字段是'userid','sessionhash','idhash','loggedin','lastactivity'和'location' 现在在登录时插入一行并在两个数据库中更新开始/两端比赛? – jaz 2010-05-25 14:53:09

回答

1

即使身份证他们都分享会议,这对你没用。他们将不得不使用会话以同样的方式,意思是:

  • 商店相同的按键相同的变量(或每个应用程序放在会议上,除了他的数据,它需要的数据,另一个需要)。
  • 除非它们使用完全相同的数据来执行登录,否则它们都必须有权访问用户名/定义/其他应用程序的会话中存储的任何内容
  • 如果它们存储了对象,则它们必须具有访问权限到相应的类定义

因此,除非您正在构建自己的应用程序并从头开始考虑它,否则忘记“共享会话”。改为使用单一登录,例如CASOpenID

+0

CAS或OpenID是否允许我计划的相同功能 - 用户在网站上登录/注销? – jaz 2010-05-25 14:15:29

+0

有了CAS,是的。 OpenID没有全局注销。 – Artefacto 2010-05-25 15:08:55

+0

那么,status.net支持OpenID开箱即用,vBulletin不支持,但它们都不支持CAS。你真的认为将CAS引入混合而不是仅仅更新两端的数据库行会更简单吗?顺便说一句,我添加了一个评论,我的问题,以帮助澄清你提出的一些事情。 – jaz 2010-05-25 15:12:27