Шаблоны для репликации пользовательских данных из одного программного обеспечения в другое - PullRequest
0 голосов
/ 23 января 2009

У меня есть сайт, который я интегрировал с популярным программным обеспечением форума (phpBB). Он настроен таким образом, что пользователи, которые автоматически заходят на основной сайт, также входят в программное обеспечение форума. Я делаю это путем аутентификации через API форума одновременно.

Когда кто-то регистрируется на сайте, запись попадает в основную базу данных сайта, а запись попадает в базу данных пользователей форума (используя API форума).

Основной идентификатор пользовательской таблицы форума хранится в столбце в основной пользовательской БД сайта. Это сохраняется во время регистрации: в процессе регистрации сначала создается пользователь форума, а затем передается идентификатор обратно в запрос, который создает пользователя на основном сайте.

Когда пользователь входит в систему, если он проходит аутентификацию на основном сайте, этот идентификатор извлекается и передается в API входа на форум для входа в систему с правильным человеком.

Однако, странная вещь, кажется, происходит случайно: один из каждых 30 или 40 человек, которые регистрируются, заканчивается с идентификатором пользователя форума, который не является их собственным в основной таблице пользователей сайта. Я знаю, как искать эти проблемы и исправлять их в каждом конкретном случае, и для этого есть сценарии, но это скорее бандит, а не исправление.

Это обычная проблема при связывании таких данных, или это кажется чем-то более конкретным с программным обеспечением? Из-за случайности этой проблемы ее было трудно отладить.

Ответы [ 2 ]

1 голос
/ 23 января 2009

Я бы заподозрил Session Management. Вы намеренно или неумышленно повторно используете идентификаторы сессии?

0 голосов
/ 02 марта 2009

Я сделал нечто подобное с vbulletin, напрямую используя базу данных mysql на форуме для аутентификации основного сайта и других сайтов (все они на одной машине) ...

В вашем случае я бы добавил специфичные для сайта поля, которых нет в базе данных phpBB в базе данных сайта, и связал бы их с phpbb с помощью user_id ... Это может быть одна форма на основных сайтах, которая вставляется в два базы данных (некоторые на основном сайте db, другие на phpBB db - с некоторыми полями привилегий), я бы использовал мою собственную нестандартную капчу, например, создание искаженного изображения «что такое x + y» с x и y в качестве случайных чисел и + может быть заменен другими операциями, или изображением «введите слово ORANGE» или «введите ваше имя пользователя снова»

Я бы отключил регистрацию phpBB по умолчанию ... Есть так много ботов, которые знают, как его использовать ...

Это гарантирует, что у вас есть один источник информации, и вы заполняете всю информацию сразу.

...