Есть главный сервер к примеру server.com
с базой данных логинов - паролей.
и есть много клиентских серверов которые содержат код и открывают странички с сервера. (работают фактически в режиме прокси).
client1.com
client2.com
client3.com
........
client20.com
на каждом клиентском сайте есть форма входа в виде
Login:
Password:
Задача:
Как при входе в систему (ввод логина пароля) на одном из клиентских хостов. На все остальные хосты заходить без логина - пароля, тоесть чтоб быть уже авторизованным в системе.
для чего это нужно. К примеру есть форум Мелитополя, а есть еще куча других городских форумов. Чтоб при авторизации на Мелитопольском или любом другом форуме на другие форумы не нужно было входить заново. Учтите что все форумы лежат на server.com, а клиентские хосты работают в режиме прокси.
Если непонятно написал, спрашивайте.
данный пример задачи обычно привожу когда говорят что Web программинг это легко.
Как при входе в систему (ввод логина пароля) на одном из клиентских хостов. На все остальные хосты заходить без логина - пароля, тоесть чтоб быть уже авторизованным в системе.
Задача прокси передать на сервер набор данных к примеру ID страницы, передать их серверу и получить ответ от сервера в виде страницы которую нужно показать.
Как при входе в систему (ввод логина пароля) на одном из клиентских хостов. На все остальные хосты заходить без логина - пароля, тоесть чтоб быть уже авторизованным в системе.
Задача прокси передать на сервер набор данных к примеру ID страницы, передать их серверу и получить ответ от сервера в виде страницы которую нужно показать.
Ты зашёл с клиента, зарегистрировался. Твои данный Логин-Пароль сохранились на "0". Дальше ты входиш на форум своего клиента "1", капаешся по нему. Потом тебе нужно попасть на другой форум "2". Ты клацаеш по ссылке, отсылается запрос "0", на получение даннных с "2". Запрос на "0" ушёл с данными о тебе. Сервер получил данные, и отсылает твой запрос с логином-паролем взятыми с БД на "2", по твоей ссылке. получает и обратно тебе.
Думаю что при регистрации на одном форуме, нужно сразу прекрепить регистрацию ко всем форумам.
Ты зашёл с клиента, зарегистрировался. Твои данный Логин-Пароль сохранились на "0". Дальше ты входиш на форум своего клиента "1", капаешся по нему. Потом тебе нужно попасть на другой форум "2". Ты клацаеш по ссылке, отсылается запрос "0", на получение даннных с "2". Запрос на "0" ушёл с данными о тебе. Сервер получил данные, и отсылает твой запрос с логином-паролем взятыми с БД на "2", по твоей ссылке. получает и обратно тебе.
Думаю что при регистрации на одном форуме, нужно сразу прекрепить регистрацию ко всем форумам.
Как тебе такой бред ?
без схемы похоже на вот туда поди то принеси а то там не трогай ИМХО
Как при входе в систему (ввод логина пароля) на одном из клиентских хостов. На все остальные хосты заходить без логина - пароля, тоесть чтоб быть уже авторизованным в системе.
Задача прокси передать на сервер набор данных к примеру ID страницы, передать их серверу и получить ответ от сервера в виде страницы которую нужно показать.
или чтото типа того и так базу для каждого форума и так далее...
Не смеши меня. Кто же пароли в GET передает ? )))
Цитата:
Ты зашёл с клиента, зарегистрировался. Твои данный Логин-Пароль сохранились на "0". Дальше ты входиш на форум своего клиента "1", капаешся по нему. Потом тебе нужно попасть на другой форум "2". Ты клацаеш по ссылке, отсылается запрос "0", на получение даннных с "2". Запрос на "0" ушёл с данными о тебе. Сервер получил данные, и отсылает твой запрос с логином-паролем взятыми с БД на "2", по твоей ссылке. получает и обратно тебе.
Подумай получше. Никаких ссылок на другие форумы не дано. Если ты вошел на одном форуме под логином паролем, то на другой форуме ты как бы не зашел, хоть по ссылке хоть из строки браузера ты ДОЛЖЕН быть залогинен.
Причем на главный сервер ты можешь зайти но так чтобы пользователь этого не заметил. (редирект). Если б вы еще описывали процессы и где какие данные должны быть было бы вообще хорошо, но пока давайте разберемся с логикой. У Rezak логика почти близка. И еще на клиентах нет БД. Они просто пропускают через себя данные от сервера - пользователю и обратно.
Я же говорил что под веб своя специфика
Тут дело даже не в программинге а в понимании процессов и возможностей. С виду задачка простейшая. Но тут нужно знание специфики. Хотя логикой ее тоже можно решить.
Юзер "1" хочет перейти на другой форум "2". Он отсылает запрос через сервер. Сервер не дурак, видит, что его активный юзер "1" пытается, что то раздобыть на другом форуме. Он (сервер) заходит на второй форум, вводит там данные своего пользователя (логин-пароль\ взятые с БД), и дальше переходит по ссылке. Перешёл ? хорошо, теперь отправляет эту страничку своему пользователю "1".
Должно работать..
Если взять механизм сессий, то основная сессия хранится на главном сервере.
Код:
Сервер не дурак, видит, что его активный юзер "1" пытается, что то раздобыть на другом форуме.
Вот как раз благодаря этой главной сессии можно определить что тот же пользователь конектится на другой сайт.
Фактически ID сесси на главном сервере хранит данные о том что пользователь залогинен. при входе на первый сайт в ID сессии СЕРВЕРА записывается данные пользователя. при заходе на второй сайт идет редирект на сервер, а так как на сервере уже есть определитель того что пользователь там залогинен, то второй хост получает ID сессии тот же что и на главном хосте. В итоге на всех хостах будет один и тот же ID сессии который выдает сервер.
1. Форум
2. редирект на сервер, получаем ID сесси
3. возвращаемся на форум с ID сесси в GET параметре (для красоты)
4. редиректимся без ID сесси в GET параметре
5. Логинимся в систему
6. сервер получает данные для входа и в сесси пишет что пользователь залогинен.(в сессии gbitncz что мы залогинены.)
7. Идем на фторой форум.
8. редиректимся на сервер
9. возвращаемся на форум с ID сесси в GET параметре
10. редиректимся без ID сесси в GET параметре (для красоты)
11. в сессии уже написано что мы залогинены.
12. зарузка страницы без формы логина
ReZak шариш. !!! Наиболее близкий к решению
В реализации конечно немного сложней. Но логика самая правильная была у ReZak'a !!!
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах