Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
curl rc ranging ok an error, UniFi Network
 
Я настроил UniFi Controller на базе Debian. Моя реализация с External Portal Server. Этот внешний портал — это сервер в той же подсети, что и UniFi Controller. Проблема в том, что иногда всё работает отлично, а потом внезапно перестаёт авторизовывать клиентов. Я использую ровно те примеры, что нашёл на этом форуме (версия 2.2.5). Иногда получаю от curl такой код ответа: { "data" : , "meta" : { "rc" : "ok" }}, а иногда приходит ошибка: { "data" : , "meta" : { "msg" : "api.err.LoginRequired", "rc" : "error" }}. Не могу понять, почему вдруг появляется эта ошибка, и никто не может выйти в сеть через UniFi. Где можно посмотреть подробности по этой ошибке? Спасибо за любую помощь. Эдуардо — Сан-Паулу, Бразилия.
 
На мой взгляд, лучше пользоваться shell-скриптом, когда это возможно. Это гораздо эффективнее, чем отправлять запрос через плагин на php. Но это только в том случае, если у вас Linux.
 
Привет, JustTech! Я изменил своё приложение в двух моментах. Во-первых, разделил index.php и authorize.php на два сервера. Теперь index.php работает на моём интранет-сервере, где принимается решение — выпускать пользователя или блокировать. Если Mac-адрес разрешён, index.php вызывает authorize.php, который работает на UniFi Controller, расположенном на другом сервере (теперь в другой подсети). Во-вторых, я изменил функцию curl-exec, как ты и предлагал. Это здорово, намного лучше, чем sh-скрипт. Сейчас моё приложение работает отлично. Спасибо за совет! Я предлагаю Ubiquiti заменить пример с sh-скриптом на PHP-функцию curl-exec. Всего хорошего!
 
Привет, JustTech, спасибо за твой пост. Я адаптировал его под своё решение, и теперь всё работает отлично. Моё решение намного проще. Это внутренний хотспот только для сотрудников и посетителей.

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

В нашем случае тайм-аутов нет. Нам просто нужно знать, кто пользуется нашей сетью.

Спасибо!
 
Если хотите увидеть, что предлагают пользователям — загляните на box.justtech.biz/guest
 
Окей, вот довольно простой способ сделать это (Linux):

1. Установите «lampp», это версия «xampp».  
2. Измените его настройки на значения для продакшена (все они отмечены в конфигурационном файле).  
3. Установите unifi.  
4. Не используйте bash-скрипт script.sh — вот пример использования curl из PHP, это наш способ аутентификации. Надеюсь, будет полезно.

index.php — это «splash page», которая передаёт сочетание логина и пароля или предоплаченный ваучер в authorise.php (этот файл) через браузерные куки. Скрипт authorise затем авторизует MAC в unifi-сервере и показывает таймер оставшегося времени перед перенаправлением обратно туда, откуда пользователь пришёл.

images/jtwifism.png
 
Привет, JustTech. Я скопировал папку guest с моего интранет-сервера на машину с Debian, где установлен UniFi Controller. Через некоторое время, установив apache2, php5, php5-curl, libcurl3, у меня продолжаются проблемы.

Пробовал вручную выполнить ./guest_authorize.sh c0:9f:42:43:fe:8d 30 — никаких ответов и разблокировки нет. Не могу понять, почему команда curl не возвращает ответ вроде { "data" : , "meta" : { "rc" : "ok" }} или { "data" : , "meta" : { "msg" : "api.err.LoginRequired", "rc" : "error" }}, которые я получаю на своем интранет-сервере.

Думаю, проблема в curl, но понять, что именно не так, не могу. Разница между моим интранет-сервером и сервером UniFi Controller в том, что первый работает на CentOS 6.3, а UniFi Controller — на Debian.

Есть идеи, в чем может быть проблема? Спасибо!
 
Ваш комментарий важен. На самом деле, в моём случае веб-сервер портала находится на другом сервере. Он расположен на сервере внутри интранета, а не на сервере контроллеров UniFi. Я собираюсь изменить структуру. Результаты опубликую через несколько дней. Спасибо.
 
Гораздо важнее, как веб-сервер портала подключен к контроллеру Unifi (предполагая, что они находятся на разных серверах?). В итоге мы запустили их на одном сервере, а затем обращались к существующей внешней системе ваучеров.
 
Привет, JustTech, спасибо за ответ. У меня сервер на Debian 6.0.5 с ядром 2.6.32-5-686 32-бит, 1 ГБ памяти. Пока установлена только одна UniFi Outdoor HP. Планирую иметь 20 и более UniFi indoor и outdoor на каждом объекте, но всё интегрировано в одну базу данных. Нужна ли вам ещё какая-то информация? Могу ли я посмотреть что-то в логах? Где именно?
 
Проблема обычно в том, что внешний портал-сервер неправильно авторизует (с использованием куки и прочего). У нас были серьёзные проблемы с этим, но в итоге мы разобрались. Точно уже не помню, что именно мы сделали. Можешь выложить немного больше информации... какую ОС сервера используете и так далее, и я посмотрю, что можно сделать.
Страницы: 1
Читают тему (гостей: 1)