lucky27, я работаю в VS Code .Ставите там расширение REST Client, создаете файл например api.http,пишете туда запрос в чистом виде, как в обычном блокноте,нажимаете появившуюся кнопку Send Request прямо над строкой метода,ответ от сервера откроется в соседней вкладке в красивом JSON-формате с вашим токеном.Ну или через Postman, там еще проще. Скачал, запустил, выбрал тип запроса POST, вставил полную ссылку авторизации:https://monopoly-one.com/api/auth.signin. Потом выбрал вкладку Body, в ней raw и в списке JSON. Вставляешь туда
{
"email": "ваша_почта@mail.com",
"password": "ваш_пароль"
}
и нажимаешь Send,и все, в нижнем окне появиться твой токен
Попробуй так, если уж через cmd
curl.exe -X POST "https://monopoly-one.com/api/auth.signin" -H "Content-Type: application/json" -d "{\"email\":\"ваша_почта@mail.com\",\"password\":\"ваш_пароль\"}"
Из документации видно, что сервер ждет данные строго в формате JSON, а не в виде обычных параметров командной строки
Спасибо за комментарий. Вижу, что" тролль" вступил в диалог, но, к его сожалению, нейросеть уже завершила обработку этого запроса. Вопрос исчерпан, тема закрыта. Желаю продуктивного дня без лишних троллингов.
P.S. "Нейрослоп".
testgoappppppp, проверьте, не блокирует ли ваш хостер или DDoS-защитный сервис ваш трафик. Запросите у них подтверждение того, что ваш IP-адрес не заблокирован.
Привет,
Разреши Apache изменять .htaccess (mod_rewrite).
Вставь правило "catch‑all", которое передает все запросы, не соответствующие реальным файлам, в PHP-файл redirect.php.
redirect.php нормализует старый запрос (с %2F-шифрованием или с кириллицей) и выполняет постоянное перенаправление на один чистый URL.
Проверь старые урлы – оба должны указывать на один и тот же канонический адрес.
Очисти кэш Bitrix и перезапусти сервер.
1.Бинарные данные / BOM – Файл может содержать нулевые байты или UTF‑8 BOM (EF BB BF). grep по умолчанию избегает бинарные файлы, поэтому он ничего не выводит. Проверьте с помощью file -i и принудительно treat as text с grep -a.
2.Скрытые не-Ascii-байты – Предварительный слэш, пробел, zero‑width space или Windows CR (\r) перед числом нарушает точное совпадение grep. Выявите это с помощью sed -n '…p' … | cat -A и очистите их (tr -d '\r').
3.grep работает в режиме регулярных выражений – Если вы используете grep -E (или алиас, который принудительно использует регулярные выражения), шаблон обрабатывается как регулярное выражение; опции типа -w (слово) могут требовать границ слов, которых нет. Убедитесь, что вы используете базовый текст (grep -F).
Сергей, спасибо за замечание: лимиты пула в коде на Go перепроверю, а разделять общую базу на отдельные инстансы с репликацией на этапе MVP моего P2P-проекта пока нецелесообразно по ресурсам.
Valdemar Smörman, Серьезно. Речь не про голый OpenVPN/WireGuard, их ТСПУ по сигнатурам дропает на любом порту.
Порт 443 используется в связке с VLESS + Reality (Xray). Трафик оборачивается в валидный TLS-туннель, а ТСПУ видит это как обычную HTTPS-сессию с разрешенным сайтом (например, ://google.com). У меня пока работает.
Эта 404 ошибка возникает из-за бага встроенного OAuth-скрипта в старых версиях IDE. Решается за минуту через ручной выпуск классического токена.
Как исправить:
1. На GitHub зайдите в Settings -> Developer settings -> Personal access tokens (classic) -> Generate new token (classic).
2. Дайте ему имя, обязательно отметьте галочками права repo, gist и read:org, после чего нажмите Generate и скопируйте сам токен.
3. В PhpStorm перейдите в Settings -> Version Control -> GitHub, удалите старую зависшую учетку (через минус), нажмите «Плюс» -> Log In with Token и вставьте скопированный ключ.
Связь сразу поднимется в обход забагованной браузерной авторизации.
Принцип Дженги — это классика стартапов.
На самом деле, такая схема часто оправдана как временный MVP для проверки гипотез отдела маркетинга. Затащить тысячи позиций по API в готовый шаблон можно за пару дней, чтобы быстро откатать спрос.
Но если бизнес оставляет эту конструкцию на постоянку в проде и пытается поверх нее строить сложную сквозную аналитику — тогда да, вся эта башня гарантированно рухнет от любого чиха.
Скорее всего, дело в блокировке стандартных UDP-портов вашим провайдером или неверном размере пакета (MTU), из-за чего соединение зависает прямо перед авторизацией.
Попробуйте решить это следующими шагами:
1. Перейдите в раздел Access на сайте Академии, переключите протокол с UDP на TCP и выберите порт 443 (трафик пойдет под видом обычного HTTPS). Скачайте новый файл.
2. Откройте скачанный .ovpn файл в любом текстовом редакторе и добавьте в самый конец две строчки для принудительного ограничения размера пакетов:
mssfix 1300
tun-mtu 1300
3. В терминале полностью убейте зависшие процессы openvpn перед новым запуском:
sudo killall openvpn
И запустите заново: sudo openvpn [имя_файла].ovpn
4. Проверьте интерфейс. Иногда строка "Initialization Sequence Completed" просто не успевает отрисоваться, хотя туннель уже поднялся. Не закрывая терминал с VPN, откройте соседнюю вкладку и введите: ip a show tun0. Если там появился IP-адрес 10.10.x.x — вы в сети, можно работать.
Личный опыт:
Я столкнулась с похожей жесткой блокировкой от провайдера, когда даже TCP 443 не помогал. Решила проблему кардинально — развернула собственный зарубежный VPS на хостинге под эти задачи и настроила подключение через свой VPN (Психанула).Свой чистый туннель провайдеры не трогают, и через него виртуальные лабораторные машины Академии коннектятся без единого разрыва и без шаманства с MTU.
Если локальная сеть совсем не пускает туннели, просто перейдите в нужный модуль курса и нажмите кнопку "Start Pwnbox" — откроется готовая виртуальная машина прямо в соседней вкладке браузера, запускать OpenVPN на своей системе не потребуется.
Переносить интерфейсы во внешние слои к их реализациям — это грубая архитектурная ошибка. Это полностью разрушает главное правило Чистой Архитектуры — направление зависимостей.
Согласно луковой структуре, все зависимости должны быть направлены строго внутрь (к ядру). Внутренние слои (Domain / Core) понятия не имеют, какая инфраструктура находится снаружи (база данных, файлы, UI). Если вы перенесете интерфейсы в папки к реализациям, то ваше ядро будет вынуждено импортировать их из внешних слоев. Это породит запрещенную обратную зависимость «Ядро ➡️ Инфраструктура».
Интерфейс всегда принадлежит вызывающему коду (тому, кто его использует), а не вызываемому (реализации). Разносить интерфейсы нужно не к реализациям, а по функциональным зонам самого ядра, чтобы не нарушать принцип разделения интерфейса (ISP из SOLID).
Где правильно расположить ваши интерфейсы:
Интерфейс репозитория (работа с файлом/БД): Оставляем в Core (Application/Domain). Бизнес-логике приложения нужно знать, какие действия можно совершать с данными (сохранить, получить), но ей плевать на физический носитель. Реализация уходит в слой инфраструктуры и импортирует этот интерфейс из ядра.
Класс для генерации нового ID: Это чистое доменное правило, определяющее логику сущности. Абстракция должна лежать в самом центре — в Domain Model.
Класс для конвертации объекта в словарь (Serializer): Зависит от того, для чего он нужен. Если для отдачи данных в UI/API — интерфейс лежит на границе Application Services / Presenters. Если для сохранения в файл — в инфраструктурном шлюзе.
Примечание для Python:
для обычного перевода объекта в dict абстрактные классы часто избыточны, лучше использовать методы самой сущности или библиотеки вроде Pydantic.Идеальная структура директорий:Не нужно плодить «подслои core» внутри инфраструктуры.
Разнесите код в ядре по смыслу:
my_project/
│
├── core/ (Слой Domain / Core — не зависит от внешнего мира)
│ ├── domain/
│ │ ├── models.py # Сущности бизнес-логики
│ │ └── id_generator.py # ABC для генератора ID (Доменное правило)
│ │
│ └── application/
│ ├── interfaces.py # ABC для Репозиториев и внешних сервисов
│ └── use_cases.py # Логика приложения, использующая эти ABC
│
└── infrastructure/ (Внешний слой — импортирует и реализует интерфейсы ядра)
├── file_repository.py # Реализация репозитория (работа с файлом)
├── db_id_generator.py # Реализация генератора ID
└── serializers.py # Конкретные мапперы
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.