Authlib и GitHub. Ошибка «redirect_uri ДОЛЖЕН соответствовать зарегистрированному обратному вызову»

Я использую authlib для аутентификации с помощью github. В настройках разработчика github я установил URL обратного вызова авторизации http://127.0.0.1:5000/complete

Но все работает очень и очень странно, иногда срабатывает аутентификация, но чаще выдает ошибку:

authlib.integrations.base_client.errors.OAuthError: redirect_uri_mismatch: The redirect_uri MUST match the registered callback URL for this application.

Иногда я могу получить ошибку, а затем снова нажать на аутентификацию, и все заработает.

Мой код:

from app.authentication.oauth import bp
from flask import url_for, render_template, redirect
from app import oauth

@bp.route('/alogin')
def login():
    redirect_uri = url_for('oauth.authorize', _external=True)
    print(redirect_uri)
    return oauth.github.authorize_redirect(redirect_uri)

@bp.route('/complete')
def authorize():
    token = oauth.github.authorize_access_token()
    resp = oauth.github.get('user', token=token) 
    resp.raise_for_status()
    user = resp.json()
    print(token)
    print(user)
    #profile = resp.json()
    # do something with the token and profile
    return redirect(url_for('main.index'))

По моему uri совпадает, но работает очень странно

этот вопрос очень похож на мой

python-social-auth и github, у меня такая ошибка "Redirect_uri ДОЛЖЕН совпадать с зарегистрированным URL-адресом обратного вызова для этого приложения"

Но это не может помочь с моей проблемой.

Пожалуйста, отредактируйте вопрос, чтобы ограничить его конкретной проблемой с достаточной детализацией, чтобы найти адекватный ответ.

user11717481 03.04.2023 03:43

@user11717481 user11717481 Мой вопрос правильный, у меня есть authlib, служба github, указал настройку на стороне службы и указал, что происходит в моем коде, и какую ошибку я получаю

Kirill Stepankov 03.04.2023 10:37
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
290
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хорошо, я понял, в чем проблема. Я изменил 127.0.0.1 на localhost в настройках приложения GitHub. И это работает.

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