Authlib ConnectTimeout из HTTPX с клиентом Starlette OAuth - PullRequest
0 голосов
/ 06 мая 2020

У меня известная проблема, когда разрешение DNS вызывает тайм-ауты при попытке авторизовать токен доступа. Клиент OAuth Starlette полагается на HTTPX для асинхронных c запросов, а HTTPX имеет известный тайм-аут 5 секунд.

Есть ли способ настроить клиент OAuth Authlib на дольше тайм-аут, чем 5 секунд?

1 Ответ

1 голос
/ 06 мая 2020

Мне, наконец, удалось это понять, все, что вы укажете в client_kwargs в функции register, будет передано клиенту HTTPX. Итак, у меня сработала эта конфигурация:

# Setup Google OAuth
oauth = OAuth(config.local_config)
oauth.register(
    name="google",
    server_metadata_url="https://accounts.google.com/.well-known/openid-configuration",
    authorize_params={"hd": config.FORCED_AUTHENTICATION_DOMAIN, "access_type": "offline"},
    client_kwargs={"scope": "openid email profile", "timeout": Timeout(timeout=config.AUTHENTICATION_TIMEOUT)},
)
...