Flask-Dance и Error: redirect_uri_mismatch - PullRequest
       16

Flask-Dance и Error: redirect_uri_mismatch

0 голосов
/ 20 января 2019

Я следую примеру в документации:

from flask import Flask, redirect, url_for
from flask_dance.contrib.google import make_google_blueprint, google

app = Flask(__name__)
app.secret_key = "supersekrit"
blueprint = make_google_blueprint(
    client_id="my-key-here",
    client_secret="my-secret-here",
    scope=[
        "https://www.googleapis.com/auth/plus.me",
        "https://www.googleapis.com/auth/userinfo.email",
    ]
)
app.register_blueprint(blueprint, url_prefix="/login")

@app.route("/")
def index():
    if not google.authorized:
        return redirect(url_for("google.login"))
    resp = google.get("/oauth2/v2/userinfo")
    assert resp.ok, resp.text
    return "You are {email} on Google".format(email=resp.json()["email"])

if __name__ == "__main__":
    app.run()

Я настроил свое приложение веб-клиента в консоли разработчика Google на прием только HTTPS с использованием https://www.example.com/login/google/authorized конечной точки.

После того, как я пытаюсь запустить весь процесс аутентификации, я получаю это:

Error: redirect_uri_mismatch

Я вижу в запросе, что Flask-Dance отправляет http://www.example.com/login/google/authorized (используя HTTP, а не HTTPS). Есть ли способ сказать Flask-Dance вместо этого использовать HTTPS? Моя среда разработки также настроена для HTTPS.

1 Ответ

0 голосов
/ 03 февраля 2019

Если Flask-Dance генерирует URL перенаправления с использованием HTTP, это означает, что Flask (не Flask-Dance) считает, что входящий запрос использует HTTP.(Проверьте request.scheme, чтобы подтвердить это.) Если входящий запрос фактически использует HTTPS, то Flask где-то запутывается, в основном из-за прокси.Проверьте документы Flask по настройкам прокси для получения дополнительной информации.

Как только Flask поймет, что входящий запрос использует HTTPS, Flask-Dance автоматически поймет, что URL перенаправления также должен использовать HTTPS.

(Источник: я автор Flask-Dance)

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