Разработка OpenID-подобного скрипта (PHP+MYSQL)
Добрый день, уважаемые программисты,
Предлагаю вам интересный и нужный людям проект.
Мне нужен скрипт единой точки входа на все мои сайты которые требуют авторизации (что-то вроде яндекс.паспорта, OpenID, других похожих систем) пользователей перед тем как они совершат определенные действия авторизуют механизмом сессии, а разрешенность-запрещенность определенных действий тоже храниться в этой же БД.
Общая схема. Рабочее название сайта куда поместят ваш скрипт Robotam.net
Пользователь приходит на "Сайт".
Нажимает допустим отправить комментарий к статье
Клиентская библиотека "Сайт"а смотрит есть ли у пользователя
в куках активная сессия и разрешено ли ему оставлять комментарии
(допустим параметр "Comments=1") и если Robotam.net
дает информацию, что у пользователя есть полномочия, сайт выполняет
какие-то действия которые у него по внутренней логике идут в этом случае.
Если пользователь не авторизован, его отправляют на гостевую страничку
регистрации проекта "Сайт" на Robotam.net.
Словесное описание блоков проекта без порядка значимости.
- Обрабатывать подписанные запросы логин(емейл)-пароль от проектов, которые к нему подключены (которым). (Поясняю - подписанные, это что-то типа хеша от текста сообщения и секретного пароля, чтобы нельзя было отправить ложный запрос с левого ресурса, хотя конечно IP ограничения по каждому ресурсу может быть установлено дополнительно). Обрабатывать кроме запросов создания самой сессии авторизации, запрос специфических параметров пользователя, например может ли он писать в какой-то раздел или есть ли у него полномочия к редактированию или выставлению оценок.
- Уметь добавлять новые проекты и задавать в них свои свойства значения полей по умолчанию, дополнительные обязательные поля (поля которые обязательны для пользователя, значения полей по умолчанию)
- Брать на себя функцию регистрации всех новых пользователей (активация по email, может быть внедрить что-то вроде Recapcha, может что-то другое). У роботам.нет будет страница регистрации для всех проектов и гостевые странички проектов индивидуального дизайна (каким-то проектам нужно 20 полей, а каким-то только email(логин) и пароль);
- Стандартная клиентскуя "пустышку", которую можно раздавать новым проектам. Она родится сама в результате разработки.
- Обеспечивать работу модератора(ов). Т.е. чтобы базу можно было бы править и менять. Чтобы можно было бы пользователя банить на кокретном проекте или на всех за что-то уж совсем вопиющее. И тогда если человек спаммер, он на других проектах ничего авторизованного уже сделать не может.
- По возможности кешировать данные таблиц в память. Локальные кеши для проектов популярных пар логин-пароль, чтобы не обращаться к центральной БД много раз, если человек среди суток много раз заходит в проект.
- Сделать упрощенные формочки для разных систем (мейл.ру, vkontakte, .... надо подумать), чтобы пользователь не вводил много данных.
- Жалеть ресурсы системы (CPU, память и обращения к диску, БД), можно экономить создавая проверки первичные на javascript.
- Нужно мочь просто масштабировать и работать нормально, если в БД станет много пользователей.
Сроки пилотной версии хочу видеть в масштабах первой недели. (коммуникация между сервером и проектом, заведения новых проектов, модерация пользователей, гостевые странички, основное в общем). Оптимизацции, кеширования, допилы, тестирования - думаю, что еще неделя. Предложу массу популярных проектов для тестдрайва системы (flesh.ru, wuz.ru, многие другие). + - Ваши и моя скорость ответа в переписке.
Оплата - Яндекс.Деньги или Вебмани (чего будет на тот момент), если вы недалеко от москвы, возможна наличка, денежный перевод, ну это уже детали, готов идти на встречу.
Жду ваших предложений и вопросов по проекту в личке.