Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1 2 След.
RSS
Пример авторизации портала PHP на V4, UniFi Network
 
Эта ветка обсуждения возникла из-за: http://community.ubnt.com/t5/UniFi-Wireless/Simple-External-Portal-in-PHP/m-p/427035/highlight/true#M35153. У многих пользователей возникали проблемы с авторизацией через PHP Curl к API контроллера. Matt@UBNT будет дальше тестировать, предоставлять исходный код и детали тестов, чтобы попытаться разобраться и решить эту проблему.
 
Как только закончите и протестируете, не забудьте приложить ваш финальный рабочий файл в формате zip.
 
С сессиями теперь всё в порядке. Но перенаправления на целевой URL нет. Можешь помочь, пожалуйста? Большое спасибо!
 
Ты что-нибудь получил, @ethem39?
 
Отличная тема. Где именно реализован этот код и как он выводит результаты в CSV-файл? Я не программист, но хотел бы добавить сбор информации в нашу сеть.
 
Спасибо, все работает. Регистр имеет значение.
 
По умолчанию указан неправильный siteid, должно быть: default. Обратите внимание на строчную букву «d».
 
Привет, кто-нибудь может подсказать, как избавиться от этой ошибки? { "msg" : "api.err.NoSiteContext" , "rc" : "error"} Я использую вот это: curl_setopt($ch, CURLOPT_URL, $unifiServer . "/api/s/Default/cmd/stamgr");
 
Привет, вот пример работающей формы аутентификации. Тебе нужно заменить данные на свои. С наилучшими пожеланиями из Франции.
 
Вы можете свободно использовать этот код, так как он был получен через форумы. У меня есть ещё один пост о портале с большим количеством функций здесь...
 
Удивительно, это работает! Спасибо! Теперь нужно проверить, можно ли это дальше развить в нечто вроде портала. Ты не против, если я возьму твой код за основу для работы? Планирую добавить вход через Facebook и многое другое, но сначала надо разобраться, как это сделать. Спасибо!
 
Да, положи это в корень apache. Это должно распаковаться в guest/s/default, так что весь путь будет var/html/guest/s/default, исходя из того, что ты указал путь /var/html. Отредактируй авторизованный php, вписав туда свои данные для mySQL и сервера UniFi.
 
Отлично, спасибо, попробую так сделать и сообщу результаты. Ты просто положил эту папку в var/html/? С обычным путем apache прямо к этой папке? Спасибо.
 
Вот довольно простой портал, который я использовал некоторое время назад и который уже размещён в другой теме форума. Он был разработан для версии 4.6.6, но я только что проверил его на 4.7.5, и, похоже, он отлично работает. Этот портал сохраняет в базе данных имя, фамилию и электронную почту пользователя. Данные для входа в mySQL и UniFi находятся в файле Authorized.php, а не в include-файле, как в других порталах из этой темы. При тестировании смотрите в контроллер на авторизацию, в apache error.log на возможные ошибки и в базу данных — что именно туда попало. Я сам error.log не проверял, так как вы просто хотели посмотреть на рабочий пример.

Вот изображение, показывающее авторизацию:  
Вот изображение с захватом данных в БД:  

И последнее... обязательно убедитесь, что у вас установлен php5-curl, без него портал не заработает. У меня были загружены php и curl, но портал всё равно не работал без php5-curl. По крайней мере, так было на Ubuntu.
 
Буду очень благодарен. Пытаюсь заставить это работать, но ничего не выходит — ни перенаправления, ни авторизации. Было бы здорово увидеть, как это настроил кто-то другой. Спасибо!
 
Да, у меня есть. Отправлю позже.
 
Случайно не найдётся полный каталог с файлами в архиве zip? Спасибо.
 
Привет! Думаю, твой код написан для MySQL. Либо тебе нужно использовать mysqli или PDO для подключения к базе данных. Посмотри этот пример, замени значения на свои и попробуй подключиться снова.
 
Привет! Я использую версию 4.7.5 и почему-то получаю ошибку API. Есть идеи, что происходит? Буду очень благодарен за любую помощь в решении этой проблемы, спасибо!

[2015-11-01 21:41:00,513] <webapi-89> ERROR api - [Deprecated API] POST /api/cmd/sitemgr (get-hotspot-admins)
[2015-11-01 21:41:15,457] <webapi-92> ERROR api - [Deprecated API] POST /api/cmd/sitemgr (get-hotspot-admins)

function sendAuthorization($id, $minutes, $bytes, $down, $up, $ap_mac)  
{  
 #$unifiServer = "https://xxxxxx:8443";     // Конфиг в server-config.php  
 #$unifiUser = "xxxx";                      // Конфиг в server-config.php  
 #$unifiPass = "xxxx";                      // Конфиг в server-config.php  
 include 'server-config.php';

 // Запуск Curl для входа  
 $ch = curl_init();  
 // Отправляем POST данные  
 //curl_setopt($ch, CURLOPT_RETURNTRANSFER, FALSE);  
 curl_setopt($ch, CURLOPT_POST, TRUE);  
 // Настройка cookie  
 $cookie_file = "/tmp/unifi_cookie";  
 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);  
 curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);  
 // Разрешаем самоподписанные сертификаты  
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);  
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);  
 // Форсируем SSL3 только  
 curl_setopt($ch, CURLOPT_SSLVERSION, 1);  
 // Логинимся в UniFi контроллер  
 curl_setopt($ch, CURLOPT_URL, "$unifiServer/api/login");  
 $data = json_encode(array("username" => $unifiUser, "password" => $unifiPass));  
 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  
 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

 // curl_setopt($ch, CURLOPT_POSTFIELDS, "login=login&username=$unifiUser&password=$unifiPass");  
 // Отправляем команду входа  
 curl_exec($ch);  
 echo "Checkpoint 1";

 // Отправляем пользователя для авторизации и время действия  
 $data = json_encode(array(  
   'cmd' => 'authorize-guest',  
   'mac' => $id,  
   'minutes' => $minutes,  
   'bytes' => $bytes,  
   'down' => $down,  
   'up' => $up,  
   'ap_mac' => $ap_mac));

 // Отправляем команду API  
 // curl_setopt($ch, CURLOPT_URL, $unifiServer.'/api/cmd/stamgr');  
 curl_setopt($ch, CURLOPT_URL, $unifiServer . "/api/s/{$_SESSION['siteurl']}/cmd/stamgr");
 curl_setopt($ch, CURLOPT_POSTFIELDS, 'json='.$data);  
 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));  
 curl_exec($ch);

 // $result = json_decode(curl_exec($ch));  
 // return $result;

 // Выход из UniFi контроллера  
 curl_setopt($ch, CURLOPT_URL, $unifiServer.'/logout');  
 curl_exec($ch);  
 curl_close($ch);  
 unset($ch);  
}
 
Итак, это сохранение данных в базу данных?
Страницы: 1 2 След.
Читают тему (гостей: 1)