Я использую 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 совпадает, но работает очень странно
этот вопрос очень похож на мой
Но это не может помочь с моей проблемой.
@user11717481 user11717481 Мой вопрос правильный, у меня есть authlib, служба github, указал настройку на стороне службы и указал, что происходит в моем коде, и какую ошибку я получаю
Хорошо, я понял, в чем проблема. Я изменил 127.0.0.1 на localhost в настройках приложения GitHub. И это работает.
Пожалуйста, отредактируйте вопрос, чтобы ограничить его конкретной проблемой с достаточной детализацией, чтобы найти адекватный ответ.