Nginx Quart上的OAUTH不一致接收不安全传输错误,即使使用SSL证书

Nginx Quart上的OAUTH不一致接收不安全传输错误,即使使用SSL证书,nginx,discord,python-3.7,quart,hypercorn,Nginx,Discord,Python 3.7,Quart,Hypercorn,最近,我一直在做一个网站项目,允许用户使用他们的Discord帐户登录,并使用他们的帐户浏览网站 该网站利用Flask Discord库,Quart作为我的WSGI web框架,Hypercorn作为我的生产服务器,Nginx作为代理将web请求传递给我的Hypercorn套接字。我已经使用Certbot Nginx设置了一个SSL证书,并将Let Encrypt作为证书颁发者。但是,在将用户重定向到Discord登录页面后,用户登录到Discord,并向我的Quart服务器请求回调。我收到以下

最近,我一直在做一个网站项目,允许用户使用他们的Discord帐户登录,并使用他们的帐户浏览网站

该网站利用Flask Discord库,Quart作为我的WSGI web框架,Hypercorn作为我的生产服务器,Nginx作为代理将web请求传递给我的Hypercorn套接字。我已经使用Certbot Nginx设置了一个SSL证书,并将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环境变量以允许不安全的传输,以防止出现这种错误,但我不想损害网站的安全性

任何关于为什么会发生这种情况的想法都会非常有用


谢谢

发生这种情况是因为来自Nginx反向代理的请求是HTTP格式的。因为你在say本地运行Quart应用程序http://127..0.0.1:5000 当Nginx向这个URL发出请求时,它以http开始。因此,不安全的传输只能从Nginx传输到Quart应用程序。您可以通过将OAUTHLIB_unsecure_TRANSPORT设置为true来抑制这种情况。更多关于这一点的重点: