用于将用户数据从一个软件复制到另一个软件的模式

时间:2009-01-22 21:42:30

标签: database replication

我有一个网站,我已经与流行的论坛软件(phpBB)集成。 我有它设置所以自动登录到主站点的用户也登录到论坛软件。我这是通过同时通过论坛的API进行身份验证来实现的。

当有人注册该网站时,一个条目进入主站点数据库,一个条目进入论坛用户数据库(使用论坛API)。

论坛用户表的主ID存储在主站点用户DB的列中。这是在注册时保存的:注册过程首先创建一个论坛用户,然后将ID传回给在主站点中创建用户的查询。

当用户登录时,如果他们通过主站点进行身份验证,则会提取该ID并将其传递到论坛登录API以登录正确的人员。

但是,一个奇怪的事情似乎是随机发生的:每30或40个人中就有一个注册结束时,在主站点用户表中的论坛用户ID不是他们自己的。我知道如何查找这些问题并根据具体情况对其进行修复,并且有脚本可以这样做,但这似乎更像是一个绑带,而不是修复。

在链接这样的数据时,这是一个常见的问题,还是看起来像软件更具体?由于这个问题的随机性很难调试。

2 个答案:

答案 0 :(得分:1)

我怀疑会话管理。您是有意还是无意地重用会话ID?

答案 1 :(得分:0)

我已经用vbulletin做了类似的事情,直接使用论坛的mys​​ql数据库来验证主站点和其他站点(它们都在同一台机器上)...

在你的情况下,我会在网站的数据库中添加不在phpBB数据库中的特定于站点的字段,并通过user_id将其链接到phpbb ...它可能是插入到两个主站点的主站点上的一个表单数据库(一些在主站点数据库中,另一些在phpBB数据库中 - 有一些更多权限字段),我使用自己的非标准验证码,如生成失真图像“x + y是什么”,x和y作为随机数和+可能会被其他操作或“键入单词ORANGE”或“再次键入您的用户名”的图像替换

我会禁用默认的phpBB注册...有很多机器人知道如何使用它...

这可以保证您拥有一个信息来源,并立即填写所有信息。