Auth0 олицетворение напрямую вызывает URL-адрес обратного вызова при успешной аутентификации, пропуская начальный шаг аутентификации. Это вызывает проблему, потому что flask / client / OAuth.authorize_access_token (), который вызывается как часть обработки обратного вызова, требует наличия переменной сеанса _auth0_callback_
, но эта переменная не задана, поскольку единственное место, где она установлена, - flask /client/OAuth.authorize_redirect (), в этой ситуации не вызывается.
Мы добавили хак для установки переменной сеанса _auth0_callback_
, если она не существует непосредственно перед вызовом flask / client / OAuth.authorize_access_token (), но это не так, и мне просто интересно если мы делаем что-то не так.
Мы также столкнулись с аналогичной проблемой с переменной сеанса _auth0_state_
, но это могло быть исправлено в v0.7, которую я сейчас тестирую. В настоящее время мы используем Authlib v0.6 в производстве.
подняли эту проблему с Auth0, но не получили никакого ответа.
Любая помощь приветствуется, спасибо
UPDATE ...
Если заглянуть глубже в Authlib, похоже, что для вызова flask/client/OAuth.authorize_access_token()
URL-адрес обратного вызова не требуется в OAuth2Session.fetch_access_token()
для получения токена, если токен включен в ответ авторизации, и в некотором смысле имеет смысл, что токен доступа включен в ответ авторизации в случае олицетворения - см. OAuth2Session.fetch_access_token () # 152 .
Так что, возможно, токен доступа для ответа авторизации от олицетворения Auth0 не существует или не проходит должным образом через ...