Authlib 1.6.10__tar.gz → 1.6.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {authlib-1.6.10 → authlib-1.6.12}/Authlib.egg-info/PKG-INFO +1 -1
- {authlib-1.6.10 → authlib-1.6.12}/PKG-INFO +1 -1
- {authlib-1.6.10 → authlib-1.6.12}/authlib/consts.py +1 -1
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/starlette_client/apps.py +5 -12
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/starlette_client/integration.py +12 -2
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/core/grants/hybrid.py +8 -7
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/core/grants/implicit.py +2 -2
- {authlib-1.6.10 → authlib-1.6.12}/Authlib.egg-info/SOURCES.txt +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/Authlib.egg-info/dependency_links.txt +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/Authlib.egg-info/requires.txt +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/Authlib.egg-info/top_level.txt +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/LICENSE +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/MANIFEST.in +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/README.md +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/common/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/common/encoding.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/common/errors.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/common/security.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/common/urls.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/deprecate.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/base_client/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/base_client/async_app.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/base_client/async_openid.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/base_client/errors.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/base_client/framework_integration.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/base_client/registry.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/base_client/sync_app.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/base_client/sync_openid.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_client/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_client/apps.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_client/integration.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_oauth1/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_oauth1/authorization_server.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_oauth1/nonce.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_oauth1/resource_protector.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_oauth2/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_oauth2/authorization_server.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_oauth2/endpoints.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_oauth2/requests.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_oauth2/resource_protector.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_oauth2/signals.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/flask_client/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/flask_client/apps.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/flask_client/integration.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/flask_oauth1/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/flask_oauth1/authorization_server.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/flask_oauth1/cache.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/flask_oauth1/resource_protector.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/flask_oauth2/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/flask_oauth2/authorization_server.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/flask_oauth2/errors.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/flask_oauth2/requests.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/flask_oauth2/resource_protector.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/flask_oauth2/signals.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/httpx_client/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/httpx_client/assertion_client.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/httpx_client/oauth1_client.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/httpx_client/oauth2_client.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/httpx_client/utils.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/requests_client/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/requests_client/assertion_session.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/requests_client/oauth1_session.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/requests_client/oauth2_session.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/requests_client/utils.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/sqla_oauth2/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/sqla_oauth2/client_mixin.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/sqla_oauth2/functions.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/sqla_oauth2/tokens_mixins.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/starlette_client/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/drafts/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/drafts/_jwe_algorithms.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/drafts/_jwe_enc_cryptodome.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/drafts/_jwe_enc_cryptography.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/errors.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/jwk.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7515/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7515/jws.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7515/models.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7516/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7516/jwe.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7516/models.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7517/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7517/_cryptography_key.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7517/asymmetric_key.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7517/base_key.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7517/jwk.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7517/key_set.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7518/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7518/ec_key.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7518/jwe_algs.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7518/jwe_encs.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7518/jwe_zips.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7518/jws_algs.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7518/oct_key.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7518/rsa_key.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7518/util.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7519/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7519/claims.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc7519/jwt.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc8037/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc8037/jws_eddsa.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/rfc8037/okp_key.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/jose/util.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/client.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/errors.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/rfc5849/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/rfc5849/authorization_server.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/rfc5849/base_server.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/rfc5849/client_auth.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/rfc5849/errors.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/rfc5849/models.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/rfc5849/parameters.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/rfc5849/resource_protector.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/rfc5849/rsa.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/rfc5849/signature.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/rfc5849/util.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth1/rfc5849/wrapper.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/auth.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/base.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/client.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/authenticate_client.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/authorization_server.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/errors.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/grants/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/grants/authorization_code.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/grants/base.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/grants/client_credentials.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/grants/implicit.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/grants/refresh_token.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/hooks.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/models.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/parameters.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/requests.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/resource_protector.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/token_endpoint.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/util.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6749/wrappers.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6750/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6750/errors.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6750/parameters.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6750/token.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc6750/validator.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7009/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7009/parameters.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7009/revocation.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7521/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7521/client.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7523/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7523/assertion.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7523/auth.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7523/client.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7523/jwt_bearer.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7523/token.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7523/validator.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7591/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7591/claims.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7591/endpoint.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7591/errors.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7592/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7592/endpoint.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7636/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7636/challenge.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7662/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7662/introspection.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7662/models.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc7662/token_validator.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc8414/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc8414/models.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc8414/well_known.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc8628/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc8628/device_code.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc8628/endpoint.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc8628/errors.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc8628/models.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc8693/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc9068/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc9068/claims.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc9068/introspection.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc9068/revocation.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc9068/token.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc9068/token_validator.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc9101/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc9101/authorization_server.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc9101/discovery.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc9101/errors.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc9101/registration.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc9207/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oauth2/rfc9207/parameter.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/core/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/core/claims.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/core/errors.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/core/grants/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/core/grants/code.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/core/grants/util.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/core/models.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/core/userinfo.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/core/util.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/discovery/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/discovery/models.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/discovery/well_known.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/registration/__init__.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/authlib/oidc/registration/claims.py +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/pyproject.toml +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/setup.cfg +0 -0
- {authlib-1.6.10 → authlib-1.6.12}/setup.py +0 -0
|
@@ -14,11 +14,7 @@ class StarletteAppMixin:
|
|
|
14
14
|
async def save_authorize_data(self, request, **kwargs):
|
|
15
15
|
state = kwargs.pop("state", None)
|
|
16
16
|
if state:
|
|
17
|
-
|
|
18
|
-
session = None
|
|
19
|
-
else:
|
|
20
|
-
session = request.session
|
|
21
|
-
await self.framework.set_state_data(session, state, kwargs)
|
|
17
|
+
await self.framework.set_state_data(request.session, state, kwargs)
|
|
22
18
|
else:
|
|
23
19
|
raise RuntimeError("Missing state value")
|
|
24
20
|
|
|
@@ -80,13 +76,10 @@ class StarletteOAuth2App(
|
|
|
80
76
|
"state": form.get("state"),
|
|
81
77
|
}
|
|
82
78
|
|
|
83
|
-
|
|
84
|
-
session
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
state_data = await self.framework.get_state_data(session, params.get("state"))
|
|
89
|
-
await self.framework.clear_state_data(session, params.get("state"))
|
|
79
|
+
state_data = await self.framework.get_state_data(
|
|
80
|
+
request.session, params.get("state")
|
|
81
|
+
)
|
|
82
|
+
await self.framework.clear_state_data(request.session, params.get("state"))
|
|
90
83
|
params = self._format_state_params(state_data, params)
|
|
91
84
|
|
|
92
85
|
claims_options = kwargs.pop("claims_options", None)
|
|
@@ -22,6 +22,10 @@ class StarletteIntegration(FrameworkIntegration):
|
|
|
22
22
|
) -> dict[str, Any]:
|
|
23
23
|
key = f"_state_{self.name}_{state}"
|
|
24
24
|
if self.cache:
|
|
25
|
+
# require a session-bound marker to prove the callback originates
|
|
26
|
+
# from the user-agent that started the flow (RFC 6749 §10.12)
|
|
27
|
+
if session is None or session.get(key) is None:
|
|
28
|
+
return None
|
|
25
29
|
value = await self._get_cache_data(key)
|
|
26
30
|
elif session is not None:
|
|
27
31
|
value = session.get(key)
|
|
@@ -37,21 +41,27 @@ class StarletteIntegration(FrameworkIntegration):
|
|
|
37
41
|
):
|
|
38
42
|
key_prefix = f"_state_{self.name}_"
|
|
39
43
|
key = f"{key_prefix}{state}"
|
|
44
|
+
now = time.time()
|
|
40
45
|
if self.cache:
|
|
41
46
|
await self.cache.set(key, json.dumps({"data": data}), self.expires_in)
|
|
47
|
+
if session is not None:
|
|
48
|
+
# clear old state data to avoid session size growing
|
|
49
|
+
for old_key in list(session.keys()):
|
|
50
|
+
if old_key.startswith(key_prefix):
|
|
51
|
+
session.pop(old_key)
|
|
52
|
+
session[key] = {"exp": now + self.expires_in}
|
|
42
53
|
elif session is not None:
|
|
43
54
|
# clear old state data to avoid session size growing
|
|
44
55
|
for old_key in list(session.keys()):
|
|
45
56
|
if old_key.startswith(key_prefix):
|
|
46
57
|
session.pop(old_key)
|
|
47
|
-
now = time.time()
|
|
48
58
|
session[key] = {"data": data, "exp": now + self.expires_in}
|
|
49
59
|
|
|
50
60
|
async def clear_state_data(self, session: Optional[dict[str, Any]], state: str):
|
|
51
61
|
key = f"_state_{self.name}_{state}"
|
|
52
62
|
if self.cache:
|
|
53
63
|
await self.cache.delete(key)
|
|
54
|
-
|
|
64
|
+
if session is not None:
|
|
55
65
|
session.pop(key, None)
|
|
56
66
|
self._clear_session_state(session)
|
|
57
67
|
|
|
@@ -49,19 +49,20 @@ class OpenIDHybridGrant(OpenIDImplicitGrant):
|
|
|
49
49
|
raise NotImplementedError()
|
|
50
50
|
|
|
51
51
|
def validate_authorization_request(self):
|
|
52
|
-
if not is_openid_scope(self.request.payload.scope):
|
|
53
|
-
raise InvalidScopeError(
|
|
54
|
-
"Missing 'openid' scope",
|
|
55
|
-
redirect_uri=self.request.payload.redirect_uri,
|
|
56
|
-
redirect_fragment=True,
|
|
57
|
-
)
|
|
58
52
|
self.register_hook(
|
|
59
53
|
"after_validate_authorization_request_payload",
|
|
60
54
|
lambda grant, redirect_uri: validate_nonce(
|
|
61
55
|
grant.request, grant.exists_nonce, required=True
|
|
62
56
|
),
|
|
63
57
|
)
|
|
64
|
-
|
|
58
|
+
redirect_uri = validate_code_authorization_request(self)
|
|
59
|
+
if not is_openid_scope(self.request.payload.scope):
|
|
60
|
+
raise InvalidScopeError(
|
|
61
|
+
"Missing 'openid' scope",
|
|
62
|
+
redirect_uri=redirect_uri,
|
|
63
|
+
redirect_fragment=True,
|
|
64
|
+
)
|
|
65
|
+
return redirect_uri
|
|
65
66
|
|
|
66
67
|
def create_granted_params(self, grant_user):
|
|
67
68
|
self.request.user = grant_user
|
|
@@ -82,13 +82,13 @@ class OpenIDImplicitGrant(ImplicitGrant):
|
|
|
82
82
|
return [client.get_client_id()]
|
|
83
83
|
|
|
84
84
|
def validate_authorization_request(self):
|
|
85
|
+
redirect_uri = super().validate_authorization_request()
|
|
85
86
|
if not is_openid_scope(self.request.payload.scope):
|
|
86
87
|
raise InvalidScopeError(
|
|
87
88
|
"Missing 'openid' scope",
|
|
88
|
-
redirect_uri=
|
|
89
|
+
redirect_uri=redirect_uri,
|
|
89
90
|
redirect_fragment=True,
|
|
90
91
|
)
|
|
91
|
-
redirect_uri = super().validate_authorization_request()
|
|
92
92
|
try:
|
|
93
93
|
validate_nonce(self.request, self.exists_nonce, required=True)
|
|
94
94
|
except OAuth2Error as error:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_oauth1/authorization_server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{authlib-1.6.10 → authlib-1.6.12}/authlib/integrations/django_oauth2/authorization_server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|