Flask -Dance facebook неверный redirect_url - PullRequest
0 голосов
/ 27 февраля 2020

Я использую Flask -Dance для входа в Facebook.

Вот файл чертежа

from flask import redirect, url_for
from flask_dance.contrib.facebook import make_facebook_blueprint, facebook

facebook_bp = make_facebook_blueprint(
    redirect_url='http://api.domain.com/auth/social/facebook/authorized'
)

@facebook_bp.route('')
def index():
    if not facebook.authorized:
        return redirect(url_for("facebook.login"))
    resp = facebook.get("/me")
    return resp.text

А ниже находится основной файл приложения

from api.auth.facebook import facebook_bp

...
app.register_blueprint(facebook_bp, url_prefix='/auth/social')

Когда Я прошу https://api.domain.com/auth/social, что он перенаправляет меня на Facebook, который говорит, что redirect_url заблокирован.

URL-адрес facebook, который открывается flask, - это нечто вроде facebook.com/...&redirect_uri=http://api/auth/social/facebook/authorized&...

У меня есть даже пытался добавить redirect_url в конфиги чертежей, но там тоже самое.

Приложение развернуто с docker compose nginx и gunicorn.

1 Ответ

0 голосов
/ 02 апреля 2020

Убедительная просьба, чтобы

if not facebook.authorized:
    #write redirect_to value as url_for(blueprint.route)
    facebook.blueprint.redirect_to='blueprint.route'
    return redirect(url_for("facebook.login"))
resp = facebook.get("/me")
assert resp.ok, resp.text
return "You are {name} on Facebook".format(name=resp.json()["name"])

в моем случае оказалось, что redirect_to всегда равен none! если бы я сделал это следующим образом:

        app.register_blueprint(facebook_bp, url_prefix="/login",redirect_to='user_routes.LoginPage')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...