powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Вопрос по структуре веб-сервиса
14 сообщений из 14, страница 1 из 1
Вопрос по структуре веб-сервиса
    #39831413
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делаю некий сервис, который будет направлять пользователей на определенную веб-страницу. Допустим это будет http://captive.local/login.html.
Веб-страница является статическим html, в который сервис подставляет некоторые динамические значения, эта особенность дана сверху и ее не поменять. Однако с пользователями необходимо взаимодействовать и для этого есть другой сайт, допустим http://portal.local.
Таким образом интерактив с пользователем строится на двух точках входа — статический captive.local (от которого нельзя отказаться) и динамический portal.local.
Я рассматриваю два способа взаимодействия.
Первый — на portal.local я настраиваю CORS и все взаимодействие выполняю js-скриптом со статической страницы.
Второй — на статической странице я делаю автоматический сабмит формы на portal.local, а уже там взаимодействую с помощью js, но уже без CORS и прочих извращений.

Другой аналогичный сервис делает это вторым способом (то есть в статической странице указана форма со скрытыми полями, с методом GET и js-кодом document.form.submit() в теле страницы).
Мне первый способ кажется более правильным. Или я что-то не учитываю?
...
Рейтинг: 0 / 0
Вопрос по структуре веб-сервиса
    #39831455
OldMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я правильно понял, то вопрос сводится к тому чтобы
- взаимодействовать с пользователем со статической страницы через кроссдоменный ajax
или
- редиректить пользователя на другой сайт.
Если вы все-равно собираетесь строить интерактив через ajax, то реализация будет практически одинаковой. Так что можно оставлять юзера на captive.local
...
Рейтинг: 0 / 0
Вопрос по структуре веб-сервиса
    #39831466
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я планирую в любом случае делать взаимодействие через AJAX, просто скрипт будет запускаться либо с captive.local (и обращаться к другому домену), либо с portal.local (и обращаться к этому же домену). В принципе я это уже сделал, скрипт работает. Но хотелось бы узнать, может быть есть какие-то тонкости, которые нужно учесть?

Другой скрипт сделан примерно так:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<form name="redirect" action="https://site.ru/login" method="GET">

<input type="hidden" name="res" value="notyet" />
<input type="hidden" name="mac" value="$(mac)" />
<input type="hidden" name="user" value="$(username)" />
<input type="hidden" name="uamport" value="mikrotik" />
<input type="hidden" name="userurl" value="$(link-orig)" />
<input type="hidden" name="linklogin" value="$(link-login-only)">

<input type="hidden" name="link-redirect" value="$(link-redirect)">

<input type="hidden" name="nasid" value="$(identity)" />
<input type="hidden" name="uamip" value="$(server-address)" />
<input type="hidden" name="error" value="$(error-orig)" />
<input type="hidden" name="chap-id" value="$(chap-id)" />
<input type="hidden" name="chap-challenge" value="$(chap-challenge)" />

</form>

<script language="JavaScript">
 document.redirect.submit();
</script>


При обращении к статической странице captive.local подменяет указанные выше переменные на значения, но я не уверен, что он их будет подменять в js-файле.
Как правильнее сделать? Вставить такую невидимую форму в html-файл, а из скрипта передать в запрос значения полей этой формы?
...
Рейтинг: 0 / 0
Вопрос по структуре веб-сервиса
    #39831500
OldMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не совсем понимаю как у вас там устроена логика... Получается, что пользователь на captive.local/login.html вообще не задерживается? Как только загружается страница, сразу же идет перенаправление на portal.local ?
...
Рейтинг: 0 / 0
Вопрос по структуре веб-сервиса
    #39831572
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это портал авторизации хотспота. captive.local — это встроенный портал шлюза, с довольно ограниченными возможностями. Чтобы их обойти, используется собственный портал portal.local с полноценным веб-сервером.
Есть готовый коммерческий облачный сервис по авторизации (скрипт которого приведен 21916744 ), он именно что просто редиректит пользователя с передачей параметров.
Я делаю свою альтернативу этому сервису на своем собственном портале авторизации. Можно поступать точно также и просто сразу же перенаправлять пользователей на свой портал. Но мне кажется более правильной стандартная статическая страница, которая через AJAX организует взаимодействие между пользователем и порталом.
...
Рейтинг: 0 / 0
Вопрос по структуре веб-сервиса
    #39831575
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переадресация не нравится по нескольким причинам:
1. В адресной строке браузера мелькает эта переадресация с кучей параметров. Чтобы они не мозолили глаза, на новом портале нужно делать еще одну переадресацию, уже на чистую страницу (без query_string).
2. Если по какой-то причине портал авторизации не отвечает или отвечает долго, у пользователя висит пустая страница.
3. Если у пользователя JS отключен или недоступен, то автоматический сабмит все равно не сработает (хотя можно через meta попробовать сделать). А если JS доступен, то параметры он может и сам передать нужные параметры.
...
Рейтинг: 0 / 0
Вопрос по структуре веб-сервиса
    #39831771
OldMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор3. Если у пользователя JS отключен или недоступен
Если javascript отключен, то ajax запросы отправляться в любом случае не будут. Хотя на таких пользователей ориентироваться не стоит.
В остальном с вами согласен. Лучше оставлять пользователя на той же странице.
авторПри обращении к статической странице captive.local подменяет указанные выше переменные на значения, но я не уверен, что он их будет подменять в js-файле.
Заменить значения в полях можно и из js файла.
...
Рейтинг: 0 / 0
Вопрос по структуре веб-сервиса
    #39831817
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, из js их подменить нельзя, ни клиент, ни portal их не знает, только captive.
...
Рейтинг: 0 / 0
Вопрос по структуре веб-сервиса
    #39831837
OldMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторНет, из js их подменить нельзя, ни клиент, ни portal их не знает, только captive.
Это get параметры из адресной строки, или что это?
Зачем вообще нужна эта форма? Вы же собираетесь делать кроссдоменные запросы..
Через ajax можно передавать любые параметры.
...
Рейтинг: 0 / 0
Вопрос по структуре веб-сервиса
    #39832699
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldMasterЭто get параметры из адресной строки, или что это?
Нет, я же писал, что эти параметры в html-файл подставляет сам captive.local.
То есть в HTML-файле указано $(mac), а когда этот HTML-файл открывается с клиента, то вместо $(mac) в нем подставлено 11:22:33:44:55:66. То есть замену переменных значениями делает не JS (он ряд значений в принципе не сможет узнать), а сам captive.portal, а затем эти значения передаются либо в форме, либо как-то еще на portal.local.
...
Рейтинг: 0 / 0
Вопрос по структуре веб-сервиса
    #39832821
OldMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторНет, я же писал, что эти параметры в html-файл подставляет сам captive.local.
Что-то я не понимаю, откуда берутся эти параметры?
В статическом html нет переменных.
Какая технология там используется?

В любом случае, чтобы там ни использовалось, если вы можете получить параметры на странице, что вам мешает записать их в js переменные. А потом эти переменные можно будет использовать в подключенном файле.
...
Рейтинг: 0 / 0
Вопрос по структуре веб-сервиса
    #39832994
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Технология называется replace.
В captive просто запрограммирована замена определенных подстрок на значения. Но это замена работает не везде, а только в конкретных местах (в login.html), поэтому прямо в подключаемый js их вставить нельзя, только в login.html.
...
Рейтинг: 0 / 0
Вопрос по структуре веб-сервиса
    #39832998
OldMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторТехнология называется replace.
Значит есть какой-то движок.
Но даже не вникая в работу вашего бэкэнда, можно предложить вариант в этом же login.html вставлять js переменные
Код: html
1.
2.
3.
4.
<script>
	var username = "$(username)";
	var link_orig = "$(link-orig)";
</script>
...
Рейтинг: 0 / 0
Вопрос по структуре веб-сервиса
    #39833001
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, я сейчас тоже так подумал, все лучше чем через невидимую форму.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Вопрос по структуре веб-сервиса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]