Я знаю, что oauth2client
устарел, но тем не менее мы его используем. Когда я запускаю процесс oauth2 в Google, он всегда пытается перенаправить меня на HTTP-версию моего приложения.
Я видел, что метод url_for
Flask должен основываться на контексте запроса, и когда я запускаю процесс (т.е. вызываю URL-адрес oauth2authorize
), я нахожусь в HTTPS. Поэтому я не понимаю, почему он передает redirect_uri
в HTTP...
Это код Flask
flow = client.OAuth2WebServerFlow(
client_id=self.client_id,
client_secret=self.client_secret,
scope=scopes,
state=state,
redirect_uri=url_for('oauth2.callback', _external=True),
**kw)
Мое приложение работает в гибком App Engine, если это поможет. И я также попытался установить PREFERRED_URL_SCHEME
моего приложения Flask на «https».
И на случай, если это неясно: я не хочу, чтобы redirect_uri был HTTP, мое приложение должно быть только HTTPS ;-)
print(url_for('oauth2.callback', _external=True))
предоставляет вам схему https? Кроме того, есть ли у вас URL-адрес https в авторизованном URI-адресе перенаправления в настройках Google OAuth? - person djnz   schedule 28.06.2019