Перейти к контенту

Единая регистрация/авторизация для списка форумов IPBoard


Рекомендуемые сообщения

Техническое задание

 

Система единой регистрации/авторизации для списка форумов IPBoard

Версия 2.3.5

 

Имеются форумы forum0, forum1, ... , forum5. У каждого своя sql-база и свой домен второго уровня.

 

Список форумов находится в виде массива в файле allforums_conf.php. Там для каждого указаны: url форума, имя домена (например, Форум2.Ру)

 

База форума forum0 берётся за основную базу единой системы, то есть при регистрации в системе аккаунт обязательно создаётся именно в базе forum0.

 

Общая панель находится по адресу forum0.ru/login

 

В качестве логина на всех форумах используется мейл.

 

===========================================

 

Для начала сделать на одной странице (без перезагрузки страницы) возможность переключать четыре вкладыша:

 

1. Авторизация

2. Регистрация

3. Смена пароля

4. Смена мейла

 

Поля для формы «Авторизация»: «Мейл», «Пароль», «Каптча», «ОК». Под полем ввода пароля мелкими буквами строчка «Забыл пароль, выслать» и поле для галочки.

 

Поля для формы «Регистрация»: «Мейл», «Пароль», «Ещё раз пароль», «Каптча», «ОК».

 

Поля для формы «Смена пароля»: «Мейл», «Старый пароль», «Новый пароль», «Ещё раз новый пароль», «Каптча», «ОК».

 

Поля для формы «Смена мейла»: «Старый мейл», «Новый мейл», «Пароль», «Каптча», «ОК».

 

В начале каждой формы ещё вставить строчку «При успехе перейти на:» и там выбор из списка форумов (список читается из файла). По умолчанию курсор стоит на том форуме, с какого человек пришёл на страницу авторизации/регистрации (то есть сделать запоминание домена, откуда пришёл).

 

Рядом с полями ввода пароля стоит маленький переключатель «Показать символы», то есть пароль можно вводить открытыми символами. При нажатии он меняется на «Скрыть символы», при нажатии возвращается ввод пароля в виде точек.

 

В идеале лучше сделать всё что можно на Аяксе, чтобы не перегружать лишний раз страницу: выбор опций, показ ошибок и т.д.

 

==============================================

 

Дополнительно по форме авторизации.

 

Если при попытке авторизации обнаруживается, что мейл в базе системы не найден, то есть нет в базе forum0, то выдаётся сообщение «Этого мейла нет в единой системе. Проследуйте на страницу регистрации.»

 

Если же при авторизации обнаруживается, что мейл в базе forum0 есть, но его нет в базе того форума, от которого человек пришёл на авторизацию, то выдаётся сообщение «У вас есть аккаунт в единой системе, но ещё нет аккаунта на форуме (указать), где вы хотите авторизоваться. Создать там аккаунт?»

И далее выбор кнопок «Создать и авторизоваться» или «Отмена».

При нажатии на «Создать» на мейл высылается просьба о подтверждении. При успехе подтверждения в базе указанного форума создаётся учётная запись (мейл, пароль), затем человек перенаправляется на выбранный форум.

 

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

 

==================================

 

Подтверждение по мейлу.

 

Во всех случаях, то есть:

1) При регистрации в системе (создание аккаунта в базе forum0)

2) При авторизации с автоматическим созданием аккаунта на других форумах

3) При смене пароля

4) При смене мейла

 

все изменения вступают в силу только после подтверждения по мейлу (в письме надо нажать на линк подтверждения).

 

При успешном подтверждении снова высылается мейл: после регистрации – поздравление, указание логина и пароля; после смены пароля или мейла – указание новых данных.

 

=======================================

 

Ошибки выдаются для каждого поля, то есть отдельно для мейла и пароля, а не «неправильный мейл или пароль».

 

=====================================

 

Дополнительно по форме регистрации.

 

Регистрация разбита на 2 шага.

 

Шаг 1. Сначала рисуется поле ввода мейла «Мейл» и кнопка «ОК». Над кнопкой надпись: «Проверьте наличие своего мейла в системе».

 

При нажатии указанный мейл ищется сначала в базе основного форума forum0, то есть в системе.

 

Если мейл там найден, то выдаётся сообщение «Этот мейл уже есть в системе. Проследуйте на страницу авторизации.»

 

Если же мейл в базе основного форума не найден, то он ищется в базах всех остальных форумов. И далее выдаются результаты в виде списка форумов.

 

Это уже наступает Шаг 2.

Поле с введённым мейлом сохраняется на экране. А ниже выдаются результаты проверки в столбик.

 

Сначала выдаются те форумы, где мейл найден (если найден). Над ними текст: «У вас уже имеются аккаунты на указанных проектах. При регистрации в общей системе ваш пароль везде будет заменён на тот, что укажете сейчас».

 

Затем ниже выдаются те форумы, где НЕ найден мейл (аккаунт). Напротив каждого стоит поле ввода галочки (по умолчанию пустое для всех, кроме форума, с которого человек зашёл на регистрацию).

Над этим списком такой текст: «Отметьте галочками те проекты, где вам нужен аккаунт. Не обязательно отмечать все проекты, если не уверены, что вам нужна там регистрация. Получить свой аккаунт на любом из проектов можно будет позже, в момент первой авторизации там, когда у вас появится потребность в этом».

 

Ниже рисуются поля «Пароль», «Ещё раз пароль», «Каптча», «ОК».

 

 

=================================================

 

Порядок работы.

 

1. Вы указываете мне список файлов и шаблонов, которые нужно править.

2. Я вам эти файлы и коды шаблонов высылаю (свои собственные).

3. Вы сами у себя на стэнде всё делаете, а мне высылаете лишь готовые файлы, шаблоны и какие настройки где изменить.

 

Оформлять и вылизывать внешний вид панелей НЕ надо! Я знаю css/html/php, то есть внешний вид и всякие нюансы доведу сам. Мне главное, чтобы регистрация/авторизация работала как часы.

 

Максим

 

 

П.С. Да, забыл сказать. Нужно, чтобы осталась и возможность обычной регистрации/авторизации, если включить её в админке.

Изменено пользователем mbosoy
Ссылка на комментарий
Поделиться на других сайтах

Глухо как в банке...

 

Sannis моментально откликнулся и написал, что заказы пока не принимает, у него диплом.

 

А что, кроме него больше тут нет профессионалов? Или деньги никому из них не нужны?

 

Я в шоке. Как выпустили третью версию (с понтами), так форум испортился :)

Ссылка на комментарий
Поделиться на других сайтах

Скажите спасибо разработчикам IPS, которые не оправдали ожидания многих, в том числе и разработчиков :-)

 

Насчёт написанного выше: Не лучше ли изначально совместить всех зарегистрированных в одной БД и потом не заниматься "выводом всех форумов, в которых пользователь зарегистрирован"? Я бы вообще сделал всё на одной БД, как это сделано в WildRAID..

Ссылка на комментарий
Поделиться на других сайтах

Не лучше ли изначально совместить всех зарегистрированных в одной БД и потом не заниматься "выводом всех форумов, в которых пользователь зарегистрирован"?

 

Да, так лучше, если без понтов ;) Я думал об этом. Можно и так. Но тут есть проблема. Например, человек хочет зарегистрироваться на форуме forum3, а на остальные ему плевать. Но его учётная запись автоматом будет создана во всех других базах. Всё бы ничего, но получается, что нельзя будет каждому форуму иметь своё количество юзеров. Регистрируется человек на форуме Иванова, а счётчики юзеров увеличиваются везде: на форуме Петрова, на форуме Сидорова, на форуме Путина :)

 

А в моём ТЗ учётка на форуме Сидорова создаётся только если человек захочет авторизоваться именно там, будучи уже в системе (в основной базе forum0).

 

Думаю, это ведь не сложно: прогонять в цикле все базы и сканировать, где есть запрашиваемый мейл, а где нет.

 

-------------------------

 

Я бы вообще сделал всё на одной БД, как это сделано в WildRAID.

 

С решением WildRAID я знаком, мне это не подходит. Его решение работает, если нужно 2-3 мелких форума посадить на одну базу, визуально разделив один форум как бы на 2-3 "витрины". А вдруг захочется каждому форуму потом стать самостоятельным? Вот тут и начнётся гемор с разделением топиков, постов, аттачей, настроек.

 

В моём случае изначально все N форумов -- самостятельные проекты, каждый из форумов может разрастись на десятки разделов, иметь большие по весу базы. Мне не хочется всё это валить в кучу.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.