Authlib 1.9.0__tar.gz → 1.9.1__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.9.0 → authlib-1.9.1}/Authlib.egg-info/PKG-INFO +2 -2
- {authlib-1.9.0 → authlib-1.9.1}/Authlib.egg-info/requires.txt +1 -1
- {authlib-1.9.0 → authlib-1.9.1}/PKG-INFO +2 -2
- {authlib-1.9.0 → authlib-1.9.1}/authlib/consts.py +1 -1
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7518/oct_key.py +4 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/drafts/id_jag.py +6 -5
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7592/endpoint.py +18 -3
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc8628/device_code.py +1 -1
- {authlib-1.9.0 → authlib-1.9.1}/pyproject.toml +11 -1
- {authlib-1.9.0 → authlib-1.9.1}/Authlib.egg-info/SOURCES.txt +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/Authlib.egg-info/dependency_links.txt +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/Authlib.egg-info/top_level.txt +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/LICENSE +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/MANIFEST.in +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/README.md +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/_joserfc_helpers.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/common/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/common/encoding.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/common/errors.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/common/language.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/common/security.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/common/urls.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/deprecate.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/base_client/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/base_client/async_app.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/base_client/async_openid.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/base_client/errors.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/base_client/framework_integration.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/base_client/registry.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/base_client/sync_app.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/base_client/sync_openid.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/django_client/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/django_client/apps.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/django_client/integration.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/django_oauth1/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/django_oauth1/authorization_server.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/django_oauth1/nonce.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/django_oauth1/resource_protector.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/django_oauth2/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/django_oauth2/authorization_server.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/django_oauth2/endpoints.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/django_oauth2/requests.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/django_oauth2/resource_protector.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/django_oauth2/signals.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/flask_client/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/flask_client/apps.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/flask_client/integration.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/flask_oauth1/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/flask_oauth1/authorization_server.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/flask_oauth1/cache.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/flask_oauth1/resource_protector.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/flask_oauth2/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/flask_oauth2/authorization_server.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/flask_oauth2/errors.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/flask_oauth2/requests.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/flask_oauth2/resource_protector.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/flask_oauth2/signals.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/httpx_client/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/httpx_client/_compat.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/httpx_client/assertion_client.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/httpx_client/oauth1_client.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/httpx_client/oauth2_client.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/httpx_client/utils.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/requests_client/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/requests_client/assertion_session.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/requests_client/oauth1_session.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/requests_client/oauth2_session.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/requests_client/utils.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/sqla_oauth2/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/sqla_oauth2/client_mixin.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/sqla_oauth2/functions.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/sqla_oauth2/tokens_mixins.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/starlette_client/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/starlette_client/apps.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/integrations/starlette_client/integration.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/drafts/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/drafts/_jwe_algorithms.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/drafts/_jwe_enc_cryptodome.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/drafts/_jwe_enc_cryptography.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/errors.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/jwk.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7515/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7515/jws.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7515/models.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7516/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7516/jwe.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7516/models.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7517/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7517/_cryptography_key.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7517/asymmetric_key.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7517/base_key.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7517/jwk.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7517/key_set.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7518/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7518/ec_key.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7518/jwe_algs.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7518/jwe_encs.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7518/jwe_zips.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7518/jws_algs.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7518/rsa_key.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7518/util.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7519/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7519/claims.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc7519/jwt.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc8037/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc8037/jws_eddsa.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/rfc8037/okp_key.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/jose/util.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/client.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/errors.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/rfc5849/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/rfc5849/authorization_server.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/rfc5849/base_server.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/rfc5849/client_auth.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/rfc5849/errors.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/rfc5849/models.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/rfc5849/parameters.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/rfc5849/resource_protector.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/rfc5849/rsa.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/rfc5849/signature.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/rfc5849/util.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth1/rfc5849/wrapper.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/auth.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/base.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/claims.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/client.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/drafts/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/authenticate_client.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/authorization_server.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/endpoint.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/errors.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/grants/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/grants/authorization_code.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/grants/base.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/grants/client_credentials.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/grants/implicit.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/grants/refresh_token.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/hooks.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/models.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/parameters.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/requests.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/resource_protector.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/token_endpoint.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/util.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/wrappers.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6750/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6750/errors.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6750/parameters.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6750/token.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6750/validator.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7009/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7009/parameters.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7009/revocation.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7521/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7521/client.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7523/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7523/assertion.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7523/auth.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7523/client.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7523/jwt_bearer.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7523/token.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7523/validator.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7591/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7591/claims.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7591/endpoint.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7591/errors.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7592/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7636/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7636/challenge.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7662/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7662/introspection.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7662/models.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc7662/token_validator.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc8414/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc8414/models.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc8414/well_known.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc8628/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc8628/endpoint.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc8628/errors.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc8628/models.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc8693/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9068/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9068/claims.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9068/introspection.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9068/revocation.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9068/token.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9068/token_validator.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9101/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9101/authorization_server.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9101/discovery.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9101/errors.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9101/registration.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9207/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9207/discovery.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc9207/parameter.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/core/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/core/authorization_request.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/core/claims.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/core/errors.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/core/grants/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/core/grants/_legacy.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/core/grants/code.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/core/grants/hybrid.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/core/grants/implicit.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/core/grants/util.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/core/models.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/core/userinfo.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/core/util.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/discovery/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/discovery/models.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/discovery/well_known.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/registration/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/registration/claims.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/rpinitiated/__init__.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/rpinitiated/discovery.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/rpinitiated/end_session.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/authlib/oidc/rpinitiated/registration.py +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/setup.cfg +0 -0
- {authlib-1.9.0 → authlib-1.9.1}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Authlib
|
|
3
|
-
Version: 1.9.
|
|
3
|
+
Version: 1.9.1
|
|
4
4
|
Summary: The ultimate Python library in building OAuth and OpenID Connect servers and clients.
|
|
5
5
|
Author-email: Hsiaoming Yang <me@lepture.com>
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -33,7 +33,7 @@ Requires-Python: >=3.10
|
|
|
33
33
|
Description-Content-Type: text/markdown
|
|
34
34
|
License-File: LICENSE
|
|
35
35
|
Requires-Dist: cryptography>=45.0.1
|
|
36
|
-
Requires-Dist: joserfc>=1.6.
|
|
36
|
+
Requires-Dist: joserfc>=1.6.8
|
|
37
37
|
Dynamic: license-file
|
|
38
38
|
|
|
39
39
|
<div align="center">
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
cryptography>=45.0.1
|
|
2
|
-
joserfc>=1.6.
|
|
2
|
+
joserfc>=1.6.8
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Authlib
|
|
3
|
-
Version: 1.9.
|
|
3
|
+
Version: 1.9.1
|
|
4
4
|
Summary: The ultimate Python library in building OAuth and OpenID Connect servers and clients.
|
|
5
5
|
Author-email: Hsiaoming Yang <me@lepture.com>
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -33,7 +33,7 @@ Requires-Python: >=3.10
|
|
|
33
33
|
Description-Content-Type: text/markdown
|
|
34
34
|
License-File: LICENSE
|
|
35
35
|
Requires-Dist: cryptography>=45.0.1
|
|
36
|
-
Requires-Dist: joserfc>=1.6.
|
|
36
|
+
Requires-Dist: joserfc>=1.6.8
|
|
37
37
|
Dynamic: license-file
|
|
38
38
|
|
|
39
39
|
<div align="center">
|
|
@@ -65,6 +65,10 @@ class OctKey(Key):
|
|
|
65
65
|
|
|
66
66
|
@staticmethod
|
|
67
67
|
def _check_key(raw_key):
|
|
68
|
+
# Per RFC 7518 §3.2, an HMAC key must be at least as long as the hash output.
|
|
69
|
+
if not raw_key:
|
|
70
|
+
raise ValueError("oct key material must not be empty")
|
|
71
|
+
|
|
68
72
|
# PEM parsers accept leading text, including comments and whitespace.
|
|
69
73
|
if any(marker in raw_key for marker in POSSIBLE_UNSAFE_KEYS):
|
|
70
74
|
raise ValueError("This key may not be safe to import")
|
|
@@ -106,14 +106,15 @@ class IDJAGGrant(BaseGrant, TokenEndpointMixin):
|
|
|
106
106
|
|
|
107
107
|
:param key: signing key (private key or shared secret)
|
|
108
108
|
:param issuer: ``iss`` claim - identifies the IdP
|
|
109
|
-
:param audience: ``aud`` claim - the resource AS
|
|
109
|
+
:param audience: ``aud`` claim - the resource AS issuer identifier
|
|
110
110
|
:param subject: ``sub`` claim - the end user (required)
|
|
111
|
-
:param client_id: ``client_id`` claim - the
|
|
111
|
+
:param client_id: ``client_id`` claim - the client identifier at the
|
|
112
|
+
resource AS
|
|
112
113
|
:param jti: ``jti`` claim (auto-generated when *None*)
|
|
113
114
|
:param issued_at: ``iat`` claim (defaults to now)
|
|
114
115
|
:param expires_at: ``exp`` claim
|
|
115
116
|
:param claims: additional claims dict
|
|
116
|
-
:param kwargs: forwarded to
|
|
117
|
+
:param kwargs: forwarded to ``sign_jwt_bearer_assertion``
|
|
117
118
|
(e.g. ``alg="RS256"``)
|
|
118
119
|
:return: compact-serialised JWT string
|
|
119
120
|
"""
|
|
@@ -285,8 +286,8 @@ class IDJAGGrant(BaseGrant, TokenEndpointMixin):
|
|
|
285
286
|
def get_audiences(self) -> list:
|
|
286
287
|
"""Return the list of valid ``aud`` values for this AS.
|
|
287
288
|
|
|
288
|
-
|
|
289
|
-
The returned list must be non-empty; ``aud`` validation is
|
|
289
|
+
Per the ID-JAG draft, ``aud`` is the issuer identifier of the
|
|
290
|
+
Resource Authorization Server. The returned list must be non-empty; ``aud`` validation is
|
|
290
291
|
mandatory for ID-JAG assertions.
|
|
291
292
|
"""
|
|
292
293
|
raise NotImplementedError()
|
|
@@ -39,6 +39,11 @@ class ClientConfigurationEndpoint:
|
|
|
39
39
|
status_code=401, description="The client does not exist on this server."
|
|
40
40
|
)
|
|
41
41
|
|
|
42
|
+
# The registration access token is only valid for the client it was
|
|
43
|
+
# issued to.
|
|
44
|
+
if not token.check_client(client):
|
|
45
|
+
raise AccessDeniedError()
|
|
46
|
+
|
|
42
47
|
if not self.check_permission(client, request):
|
|
43
48
|
# If the client does not have permission to read its record, the server
|
|
44
49
|
# MUST return an HTTP 403 Forbidden.
|
|
@@ -146,25 +151,35 @@ class ClientConfigurationEndpoint:
|
|
|
146
151
|
raise NotImplementedError()
|
|
147
152
|
|
|
148
153
|
def authenticate_token(self, request):
|
|
149
|
-
"""Authenticate
|
|
154
|
+
"""Authenticate the registration access token of the request.
|
|
150
155
|
Developers MUST implement this method in subclass::
|
|
151
156
|
|
|
152
157
|
def authenticate_token(self, request):
|
|
153
158
|
auth = request.headers.get("Authorization")
|
|
154
159
|
return get_token_by_auth(auth)
|
|
155
160
|
|
|
161
|
+
The token MUST implement
|
|
162
|
+
:meth:`~authlib.oauth2.rfc6749.TokenMixin.check_client`. Requests
|
|
163
|
+
are denied when the token was not issued to the requested client.
|
|
164
|
+
|
|
156
165
|
:return: token instance
|
|
157
166
|
"""
|
|
158
167
|
raise NotImplementedError()
|
|
159
168
|
|
|
160
169
|
def authenticate_client(self, request):
|
|
161
|
-
"""Read
|
|
170
|
+
"""Read the client from the client configuration endpoint URL.
|
|
162
171
|
Developers MUST implement this method in subclass::
|
|
163
172
|
|
|
173
|
+
from urllib.parse import urlparse
|
|
174
|
+
|
|
175
|
+
|
|
164
176
|
def authenticate_client(self, request):
|
|
165
|
-
|
|
177
|
+
path = urlparse(request.uri).path
|
|
178
|
+
client_id = path.rstrip("/").rsplit("/", 1)[-1]
|
|
166
179
|
return Client.get(client_id=client_id)
|
|
167
180
|
|
|
181
|
+
The route parameter of the web framework can also be used.
|
|
182
|
+
|
|
168
183
|
:return: client instance
|
|
169
184
|
"""
|
|
170
185
|
raise NotImplementedError()
|
|
@@ -171,7 +171,7 @@ class DeviceCodeGrant(BaseGrant, TokenEndpointMixin):
|
|
|
171
171
|
|
|
172
172
|
user_id, allowed = data.split()
|
|
173
173
|
user = User.get(user_id)
|
|
174
|
-
return user,
|
|
174
|
+
return user, allowed == "1"
|
|
175
175
|
|
|
176
176
|
Note, user grant information is saved by verification endpoint.
|
|
177
177
|
"""
|
|
@@ -8,7 +8,7 @@ description = "The ultimate Python library in building OAuth and OpenID Connect
|
|
|
8
8
|
authors = [{name = "Hsiaoming Yang", email="me@lepture.com"}]
|
|
9
9
|
dependencies = [
|
|
10
10
|
"cryptography>=45.0.1",
|
|
11
|
-
"joserfc>=1.6.
|
|
11
|
+
"joserfc>=1.6.8",
|
|
12
12
|
]
|
|
13
13
|
license = {text = "BSD-3-Clause"}
|
|
14
14
|
requires-python = ">=3.10"
|
|
@@ -52,6 +52,7 @@ dev = [
|
|
|
52
52
|
"pytest>=8.2",
|
|
53
53
|
"pytest-asyncio>=0.21",
|
|
54
54
|
"pytest-env>=1.0",
|
|
55
|
+
"scriv[toml]>=1.8.0",
|
|
55
56
|
"tox-uv >= 1.16.0",
|
|
56
57
|
]
|
|
57
58
|
|
|
@@ -94,6 +95,15 @@ version = {attr = "authlib.__version__"}
|
|
|
94
95
|
where = ["."]
|
|
95
96
|
include = ["authlib", "authlib.*"]
|
|
96
97
|
|
|
98
|
+
[tool.scriv]
|
|
99
|
+
format = "rst"
|
|
100
|
+
changelog = "docs/upgrades/changelog.rst"
|
|
101
|
+
version = "literal: authlib/consts.py: version"
|
|
102
|
+
categories = ["Breaking changes", "Added", "Changed", "Deprecated", "Fixed", "Security"]
|
|
103
|
+
rst_header_chars = "-~"
|
|
104
|
+
compact_fragments = true
|
|
105
|
+
entry_title_template = "Version {{ version }} — {{ date.strftime('%Y-%m-%d') }}"
|
|
106
|
+
|
|
97
107
|
[tool.ruff.lint]
|
|
98
108
|
select = [
|
|
99
109
|
"B", # flake8-bugbear
|
|
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
|
{authlib-1.9.0 → authlib-1.9.1}/authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.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
|