Discord OAUTH на Quart получает InsecureTransportError даже с сертификатом SSL

Недавно я работал над проектом веб-сайта, который позволяет пользователям входить в систему со своими учетными записями Discord, чтобы просматривать веб-сайт со своей учетной записью.

На веб-сайте используется библиотека Flask-Discord, Quart в качестве моей веб-инфраструктуры WSGI, Hypercorn в качестве рабочего сервера и Nginx в качестве прокси для передачи веб-запросов на мой сокет Hypercorn. Я установил SSL-сертификат с помощью Certbot-Nginx с Let Encrypt в качестве эмитента сертификата. Однако после того, как пользователи перенаправляются на страницу входа в Discord, пользователь входит в Discord, и на мой сервер Quart запрашивается обратный вызов, я получаю следующую ошибку:

oauthlib.oauth2.rfc6749.errors.InsecureTransportError: (insecure_transport) OAuth 2 MUST utilize https.

Веб-сайт настроен и работает правильно с настройкой домена с временным noip и действующим сертификатом SSL, поэтому все запросы перенаправляются на HTTPS вместо HTTP.

Возможно ли, что из-за того, что сертификат SSL настроен с помощью Nginx, библиотека Python OAuth2 просто не знает о сертификате SSL? Это кажется маловероятным, учитывая, что все запросы перенаправляются на HTTPS.

Я нашел множество людей, которые рекомендуют для предотвращения такой ошибки просто изменить переменные среды OAuth, чтобы обеспечить небезопасный транспорт, но я не хочу ставить под угрозу безопасность веб-сайта.

Любые идеи относительно того, почему это может происходить, были бы чрезвычайно полезны.

Спасибо

0 ответов

Это происходит потому, что запросы, поступающие от обратного прокси-сервера Nginx, находятся в форме HTTP. Поскольку вы запускаете приложение Quart локально, скажем, по адресу http://127..0.0.1:5000, и когда Nginx запрашивает этот URL-адрес, он начинается с http. Таким образом, небезопасный транспорт осуществляется только из Nginx в ваше приложение Quart. Вы можете подавить это, установив "OAUTHLIB_INSECURE_TRANSPORT" = "true". Подробнее об этом: https://github.com/thec0sm0s/Flask-Discord/issues/3#issuecomment-676567390

Другие вопросы по тегам