Здравствуйте.
Имеется ситуация. Есть база данных пользователей. Внешняя. На другом сервере. Имеется доступ к ней. Как организовать запросы к другой БД - я научился. Как можно сделать авторизацию пользователей по этой базе?
Как я правильно понимаю, нужно:
1. Стартовать сессию текущего пользователя.
2. Проверить, авторизован ли он или нет (запрос к внешней БД).
3. Если нет, то где-то (где?) отметить, что текущий пользователь не авторизован.
4. Показать форму авторизации.
5. Пользователь вводит логин/пароль и переходит (куда?).
6. Там, куда он перешел выполняется проверка логина/пароля, в БД записывается идентификатор сессии, пользователю ставится кука с идентификатором сессии. Если неправильный логин/пароль, нужно в той же форме (сбоку она находится, в правой колонке) сказать, что всё плохо и попробовать еще авторизоваться.
Но вот я не знаю, как это реализоваться средствами модкса. Может кто-то помочь объяснить?
Сам пока в стадии обучения, поэтому, если кто-то сможет объяснить, объясните по-подробнее. Для чайников.
Только не предлагайте переносить базу пользователей в МОДКС - нельзя. Должна быть внешняя база. На нее много чего завязано. И модкс в этой связке - не главное звено.
-
☆ A M B ☆
- 1,086 Posts
Quote from: noff at Mar 06, 2008, 04:36 AM
Как я правильно понимаю, нужно:
1. Стартовать сессию текущего пользователя.
2. Проверить, авторизован ли он или нет (запрос к внешней БД).
3. Если нет, то где-то (где?) отметить, что текущий пользователь не авторизован.
Ну если Вы используете другую базу данных для авторизации, то по логике там же и отмечайте.
Quote from: noff at Mar 06, 2008, 04:36 AM
4. Показать форму авторизации.
5. Пользователь вводит логин/пароль и переходит (куда?).
Скорее всего, куда-то он перейдет

А если серьезно, то наверное туда, куда вы укажете в форме в параметре action.
Quote from: noff at Mar 06, 2008, 04:36 AM
6. Там, куда он перешел выполняется проверка логина/пароля, в БД записывается идентификатор сессии, пользователю ставится кука с идентификатором сессии. Если неправильный логин/пароль, нужно в той же форме (сбоку она находится, в правой колонке) сказать, что всё плохо и попробовать еще авторизоваться.
Опять же в основном работа с внешней базой, MODx здесь как-бы и ни при чем. Есть сниппет, который проверяет совпадение введенных данных посетителем и данные во внешней БД, и от результата сравнения что-то делает - выдает ошибку, приветствует зарегистрированного пользователя, перенаправляет посетителя на другую страницу или что-то еще. Наверное, если на пальцах, то иначе не скажешь
Разработка сайтов и программных модулей на MODX.
Опыт работы на MODx с 2005 года. Высокое качество.
Компания Baltic Design Colors:
http://www.bdcolors.ru.
Собственно, я и спрашивал - что нужно использоваться. Сниппеты - какие? Что они должны делать. Чанки - какие? Что они должны делать? TV? Аналогично. Я слабо модкс знаю, всегда сам все делал. Поэтому и спрашиваю, что именно используется и когда. Т.е. если кто-то сможет мне пошаговую инструкцию написать тут - буду признателен.
Посмотрите, как устроены сниппеты, отвечающие за пользователей в MODx (например, WebLogin) и замените все обращения в нем к базе MODx на аналогичные обращения к внешней базе.
Если хотите полностью заменить внутреннюю базу на внешнюю, найдите все обращения к таблицам web_users, web_users_attribites, web_users_settings и измените их.
Мне кажется, проще дублировать регистрационную информацию в две базы – тогда придется менять только процедуру регистрации и внесения изменений в аккаунт, а подключение пользователя и работа будет вестись с помощью стандартных средств.
Продублировать не проще.
Я вскользь смотрел WebLogin, но как мне показалось, там запросы только по обновлению данных о пользователе. Вся авторизация web-пользователей находится внутри ядра. Но пересмотрю еще раз.