Необходимо реализовать проксирование стороннего сайта (далее
https://original.site). Реализовать можно используя nginx + lua ( lua module), возможно подойдет Python. Если есть более эффективный вариант готов обсудить.
Пример
https://www.croxyproxy.com/ (в отличии от примера проксировать нужно, только один сайт)
Как должен работать прокси (далее
http://ourwebproxy.site) :
- Доступ на
http://ourwebproxy.site толькопо логину и паролю.
- На
https://original.site сайте имеется защита от простых методов проксирования, необходимо будет разобраться с этим моментом и сделать так, чтобы оригинал не смог отличить запрос через прокси от обычного прямого запроса. До начала работы пользователей (далее клиентов) на
https://original.site сайте
проходим авторизацию в личный кабинет, все данные (куки, данные разрешения экрана, остальные данные о ПК на котором была произведена авторизация) сохраняем на прокси (сервер nginx). Можно сделать авторизацию прям через него (что желательно), например средствами селениум, что автоматизирует сбор данных.
- Клиенты авторизуется на
ourwebproxy.site со своим логином и паролем ( страницу для авторизации на прокси потребуется написать с нуля)
- Прокси (сервер nginx) хранит сессию
original.site сайта и при запросе авторизованного на
ourwebproxy.site клиента оправляет (проксирует) запрос на
original.site сайт подставляя сохраненные ранее куки (данные подставляются в каждом запросе на оригинальный сайт).
- Получив ответ от
original.site сайт, подменяет все ссылки на наш домен (
ourwebproxy.site) вместо оригинального (
original.site) и передаем ответ запросившему клиенту.
- Запросы и ответу нужно будут фильтр. Например у клиента не будет выводится часть информации (чаты с техподдержкой, рекламные ролики для снижения нагрузки на трафик), возможно в каких то блоках (страницах) придется заменить информацию (данные Личного кабинета, данные для API и ид)
Вся установка должна быть реализована через докер, исходный код сборки докера, инструкции по сборке. Все это потребуется передать заказчику.
Для работы с пользователями потребуется написать пару страниц администратора (любой удобный язык PHP, pythonи т.д.).
Страница авторизации администратора.
Страница управления доступом,
Выводим лист (таблицу) со всеми пользователями, есть возможность их добавить, изменить, заблокировать, разблокировать. Поля таблицы:
- Светофор кружок (или квадрат. Зеленый когда есть оплата, желтый за пять дней до конца, красный когда заблокирован)
- Фамилия
- Имя
- Отчество
- Почта (он же логин)
- Телеграм ( отправка пароля, запрос на смену пароля, уведомление об активации, уведомление об отключении доступа. Если клиент уже подписался на бота, создать учётку автоматом, сгенерировать пароль и отправить письмо (письмо брать и шаблона))
- Дата регистрации
- Дата активации доступа (только по этой дате доступ, для не активированного страница с тарифоми и ссылка в телеграм )
- Тариф (данные из отдельного справочника название, количество дней, скидка )
- Оплата (данные на оплату берем из тарифа. минус показывает что доступ активирован как тестовый. в блокировке показать количество дней.)
- Блокировка (при ручном вводе выдать окно с уточнением причины. есть справочник с шаблонами откуда можно выбрать быстрый комментарий. если система заблокировала по дате окончания тарифа оставить комментарии "Истек срок тарифа, клиент не продлил услугу" )
Страница с настройками
- Данные для телеграм (API ключ)
- Сколько дней до уведомления об окончание тарифа (только цифры от 0 до 31)
- Доменное имя нашего сайта (пример http://ourwebproxy.site)
- Доменное имя сайта который проксируем (пример https://original.site)