Authlib 1.7.1__tar.gz → 1.7.2__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.7.1 → authlib-1.7.2}/Authlib.egg-info/PKG-INFO +39 -39
- {authlib-1.7.1 → authlib-1.7.2}/Authlib.egg-info/SOURCES.txt +1 -0
- {authlib-1.7.1 → authlib-1.7.2}/PKG-INFO +39 -39
- {authlib-1.7.1 → authlib-1.7.2}/README.md +38 -38
- authlib-1.7.2/authlib/common/language.py +13 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/consts.py +1 -1
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7523/assertion.py +1 -1
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7523/auth.py +3 -1
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc8414/models.py +11 -1
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/core/claims.py +7 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/discovery/models.py +2 -1
- {authlib-1.7.1 → authlib-1.7.2}/Authlib.egg-info/dependency_links.txt +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/Authlib.egg-info/requires.txt +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/Authlib.egg-info/top_level.txt +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/LICENSE +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/MANIFEST.in +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/_joserfc_helpers.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/common/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/common/encoding.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/common/errors.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/common/security.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/common/urls.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/deprecate.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/base_client/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/base_client/async_app.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/base_client/async_openid.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/base_client/errors.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/base_client/framework_integration.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/base_client/registry.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/base_client/sync_app.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/base_client/sync_openid.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/django_client/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/django_client/apps.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/django_client/integration.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/django_oauth1/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/django_oauth1/authorization_server.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/django_oauth1/nonce.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/django_oauth1/resource_protector.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/django_oauth2/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/django_oauth2/authorization_server.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/django_oauth2/endpoints.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/django_oauth2/requests.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/django_oauth2/resource_protector.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/django_oauth2/signals.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/flask_client/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/flask_client/apps.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/flask_client/integration.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/flask_oauth1/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/flask_oauth1/authorization_server.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/flask_oauth1/cache.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/flask_oauth1/resource_protector.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/flask_oauth2/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/flask_oauth2/authorization_server.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/flask_oauth2/errors.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/flask_oauth2/requests.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/flask_oauth2/resource_protector.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/flask_oauth2/signals.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/httpx_client/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/httpx_client/assertion_client.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/httpx_client/oauth1_client.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/httpx_client/oauth2_client.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/httpx_client/utils.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/requests_client/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/requests_client/assertion_session.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/requests_client/oauth1_session.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/requests_client/oauth2_session.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/requests_client/utils.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/sqla_oauth2/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/sqla_oauth2/client_mixin.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/sqla_oauth2/functions.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/sqla_oauth2/tokens_mixins.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/starlette_client/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/starlette_client/apps.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/integrations/starlette_client/integration.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/drafts/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/drafts/_jwe_algorithms.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/drafts/_jwe_enc_cryptodome.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/drafts/_jwe_enc_cryptography.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/errors.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/jwk.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7515/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7515/jws.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7515/models.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7516/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7516/jwe.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7516/models.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7517/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7517/_cryptography_key.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7517/asymmetric_key.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7517/base_key.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7517/jwk.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7517/key_set.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7518/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7518/ec_key.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7518/jwe_algs.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7518/jwe_encs.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7518/jwe_zips.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7518/jws_algs.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7518/oct_key.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7518/rsa_key.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7518/util.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7519/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7519/claims.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc7519/jwt.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc8037/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc8037/jws_eddsa.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/rfc8037/okp_key.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/jose/util.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/client.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/errors.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/rfc5849/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/rfc5849/authorization_server.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/rfc5849/base_server.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/rfc5849/client_auth.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/rfc5849/errors.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/rfc5849/models.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/rfc5849/parameters.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/rfc5849/resource_protector.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/rfc5849/rsa.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/rfc5849/signature.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/rfc5849/util.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth1/rfc5849/wrapper.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/auth.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/base.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/claims.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/client.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/authenticate_client.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/authorization_server.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/endpoint.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/errors.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/grants/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/grants/authorization_code.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/grants/base.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/grants/client_credentials.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/grants/implicit.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/grants/refresh_token.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/hooks.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/models.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/parameters.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/requests.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/resource_protector.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/token_endpoint.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/util.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6749/wrappers.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6750/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6750/errors.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6750/parameters.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6750/token.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc6750/validator.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7009/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7009/parameters.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7009/revocation.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7521/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7521/client.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7523/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7523/client.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7523/jwt_bearer.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7523/token.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7523/validator.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7591/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7591/claims.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7591/endpoint.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7591/errors.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7592/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7592/endpoint.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7636/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7636/challenge.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7662/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7662/introspection.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7662/models.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc7662/token_validator.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc8414/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc8414/well_known.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc8628/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc8628/device_code.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc8628/endpoint.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc8628/errors.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc8628/models.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc8693/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9068/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9068/claims.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9068/introspection.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9068/revocation.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9068/token.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9068/token_validator.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9101/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9101/authorization_server.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9101/discovery.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9101/errors.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9101/registration.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9207/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9207/discovery.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oauth2/rfc9207/parameter.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/core/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/core/errors.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/core/grants/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/core/grants/_legacy.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/core/grants/code.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/core/grants/hybrid.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/core/grants/implicit.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/core/grants/util.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/core/models.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/core/userinfo.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/core/util.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/discovery/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/discovery/well_known.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/registration/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/registration/claims.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/rpinitiated/__init__.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/rpinitiated/discovery.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/rpinitiated/end_session.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/authlib/oidc/rpinitiated/registration.py +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/pyproject.toml +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/setup.cfg +0 -0
- {authlib-1.7.1 → authlib-1.7.2}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Authlib
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.2
|
|
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
|
|
@@ -83,33 +83,33 @@ Authlib will deprecate `authlib.jose` module, please read:
|
|
|
83
83
|
|
|
84
84
|
Generic, spec-compliant implementation to build clients and providers:
|
|
85
85
|
|
|
86
|
-
- [The OAuth 1.0 Protocol](https://docs.authlib.org/en/stable/
|
|
87
|
-
- [RFC5849: The OAuth 1.0 Protocol](https://docs.authlib.org/en/stable/specs/rfc5849.html)
|
|
88
|
-
- [The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/stable/
|
|
89
|
-
- [RFC6749: The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/stable/specs/rfc6749.html)
|
|
90
|
-
- [RFC6750: The OAuth 2.0 Authorization Framework: Bearer Token Usage](https://docs.authlib.org/en/stable/specs/rfc6750.html)
|
|
91
|
-
- [RFC7009: OAuth 2.0 Token Revocation](https://docs.authlib.org/en/stable/specs/rfc7009.html)
|
|
92
|
-
- [RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants](https://docs.authlib.org/en/stable/specs/rfc7523.html)
|
|
93
|
-
- [RFC7591: OAuth 2.0 Dynamic Client Registration Protocol](https://docs.authlib.org/en/stable/specs/rfc7591.html)
|
|
94
|
-
- [RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol](https://docs.authlib.org/en/stable/specs/rfc7592.html)
|
|
95
|
-
- [RFC7636: Proof Key for Code Exchange by OAuth Public Clients](https://docs.authlib.org/en/stable/specs/rfc7636.html)
|
|
96
|
-
- [RFC7662: OAuth 2.0 Token Introspection](https://docs.authlib.org/en/stable/specs/rfc7662.html)
|
|
97
|
-
- [RFC8414: OAuth 2.0 Authorization Server Metadata](https://docs.authlib.org/en/stable/specs/rfc8414.html)
|
|
98
|
-
- [RFC8628: OAuth 2.0 Device Authorization Grant](https://docs.authlib.org/en/stable/specs/rfc8628.html)
|
|
99
|
-
- [RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens](https://docs.authlib.org/en/stable/specs/rfc9068.html)
|
|
100
|
-
- [RFC9101: The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)](https://docs.authlib.org/en/stable/specs/rfc9101.html)
|
|
101
|
-
- [RFC9207: OAuth 2.0 Authorization Server Issuer Identification](https://docs.authlib.org/en/stable/specs/rfc9207.html)
|
|
86
|
+
- [The OAuth 1.0 Protocol](https://docs.authlib.org/en/stable/oauth1/index.html)
|
|
87
|
+
- [RFC5849: The OAuth 1.0 Protocol](https://docs.authlib.org/en/stable/oauth1/specs/rfc5849.html)
|
|
88
|
+
- [The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/stable/oauth2/index.html)
|
|
89
|
+
- [RFC6749: The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/stable/oauth2/specs/rfc6749.html)
|
|
90
|
+
- [RFC6750: The OAuth 2.0 Authorization Framework: Bearer Token Usage](https://docs.authlib.org/en/stable/oauth2/specs/rfc6750.html)
|
|
91
|
+
- [RFC7009: OAuth 2.0 Token Revocation](https://docs.authlib.org/en/stable/oauth2/specs/rfc7009.html)
|
|
92
|
+
- [RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants](https://docs.authlib.org/en/stable/oauth2/specs/rfc7523.html)
|
|
93
|
+
- [RFC7591: OAuth 2.0 Dynamic Client Registration Protocol](https://docs.authlib.org/en/stable/oauth2/specs/rfc7591.html)
|
|
94
|
+
- [RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol](https://docs.authlib.org/en/stable/oauth2/specs/rfc7592.html)
|
|
95
|
+
- [RFC7636: Proof Key for Code Exchange by OAuth Public Clients](https://docs.authlib.org/en/stable/oauth2/specs/rfc7636.html)
|
|
96
|
+
- [RFC7662: OAuth 2.0 Token Introspection](https://docs.authlib.org/en/stable/oauth2/specs/rfc7662.html)
|
|
97
|
+
- [RFC8414: OAuth 2.0 Authorization Server Metadata](https://docs.authlib.org/en/stable/oauth2/specs/rfc8414.html)
|
|
98
|
+
- [RFC8628: OAuth 2.0 Device Authorization Grant](https://docs.authlib.org/en/stable/oauth2/specs/rfc8628.html)
|
|
99
|
+
- [RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens](https://docs.authlib.org/en/stable/oauth2/specs/rfc9068.html)
|
|
100
|
+
- [RFC9101: The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)](https://docs.authlib.org/en/stable/oauth2/specs/rfc9101.html)
|
|
101
|
+
- [RFC9207: OAuth 2.0 Authorization Server Issuer Identification](https://docs.authlib.org/en/stable/oauth2/specs/rfc9207.html)
|
|
102
102
|
- [Javascript Object Signing and Encryption](https://docs.authlib.org/en/stable/jose/index.html)
|
|
103
103
|
- [RFC7515: JSON Web Signature](https://docs.authlib.org/en/stable/jose/jws.html)
|
|
104
104
|
- [RFC7516: JSON Web Encryption](https://docs.authlib.org/en/stable/jose/jwe.html)
|
|
105
105
|
- [RFC7517: JSON Web Key](https://docs.authlib.org/en/stable/jose/jwk.html)
|
|
106
|
-
- [RFC7518: JSON Web Algorithms](https://docs.authlib.org/en/stable/specs/rfc7518.html)
|
|
106
|
+
- [RFC7518: JSON Web Algorithms](https://docs.authlib.org/en/stable/jose/specs/rfc7518.html)
|
|
107
107
|
- [RFC7519: JSON Web Token](https://docs.authlib.org/en/stable/jose/jwt.html)
|
|
108
|
-
- [RFC7638: JSON Web Key (JWK) Thumbprint](https://docs.authlib.org/en/stable/specs/rfc7638.html)
|
|
108
|
+
- [RFC7638: JSON Web Key (JWK) Thumbprint](https://docs.authlib.org/en/stable/jose/specs/rfc7638.html)
|
|
109
109
|
- [ ] RFC7797: JSON Web Signature (JWS) Unencoded Payload Option
|
|
110
|
-
- [RFC8037: ECDH in JWS and JWE](https://docs.authlib.org/en/stable/specs/rfc8037.html)
|
|
110
|
+
- [RFC8037: ECDH in JWS and JWE](https://docs.authlib.org/en/stable/jose/specs/rfc8037.html)
|
|
111
111
|
- [ ] draft-madden-jose-ecdh-1pu-04: Public Key Authenticated Encryption for JOSE: ECDH-1PU
|
|
112
|
-
- [OpenID Connect 1.0](https://docs.authlib.org/en/stable/specs/oidc.html)
|
|
112
|
+
- [OpenID Connect 1.0](https://docs.authlib.org/en/stable/oauth2/specs/oidc.html)
|
|
113
113
|
- [x] OpenID Connect Core 1.0
|
|
114
114
|
- [x] OpenID Connect Discovery 1.0
|
|
115
115
|
- [x] OpenID Connect Dynamic Client Registration 1.0
|
|
@@ -118,30 +118,30 @@ Generic, spec-compliant implementation to build clients and providers:
|
|
|
118
118
|
Connect third party OAuth providers with Authlib built-in client integrations:
|
|
119
119
|
|
|
120
120
|
- Requests
|
|
121
|
-
- [OAuth1Session](https://docs.authlib.org/en/stable/client/requests.html
|
|
122
|
-
- [OAuth2Session](https://docs.authlib.org/en/stable/client/requests.html#requests-oauth-2-0)
|
|
123
|
-
- [OpenID Connect](https://docs.authlib.org/en/stable/client/requests.html#requests-openid-connect)
|
|
124
|
-
- [AssertionSession](https://docs.authlib.org/en/stable/client/requests.html#requests-service-account)
|
|
121
|
+
- [OAuth1Session](https://docs.authlib.org/en/stable/oauth1/client/http/requests.html)
|
|
122
|
+
- [OAuth2Session](https://docs.authlib.org/en/stable/oauth2/client/http/requests.html#requests-oauth-2-0)
|
|
123
|
+
- [OpenID Connect](https://docs.authlib.org/en/stable/oauth2/client/http/requests.html#requests-openid-connect)
|
|
124
|
+
- [AssertionSession](https://docs.authlib.org/en/stable/oauth2/client/http/requests.html#requests-service-account)
|
|
125
125
|
- HTTPX
|
|
126
|
-
- [AsyncOAuth1Client](https://docs.authlib.org/en/stable/client/httpx.html
|
|
127
|
-
- [AsyncOAuth2Client](https://docs.authlib.org/en/stable/client/httpx.html#httpx-oauth-2-0)
|
|
128
|
-
- [OpenID Connect](https://docs.authlib.org/en/stable/client/httpx.html#httpx-oauth-2-0)
|
|
129
|
-
- [AsyncAssertionClient](https://docs.authlib.org/en/stable/client/httpx.html#async-service-account)
|
|
130
|
-
- [Flask OAuth Client](https://docs.authlib.org/en/stable/client/flask.html)
|
|
131
|
-
- [Django OAuth Client](https://docs.authlib.org/en/stable/client/django.html)
|
|
132
|
-
- [Starlette OAuth Client](https://docs.authlib.org/en/stable/client/starlette.html)
|
|
133
|
-
- [FastAPI OAuth Client](https://docs.authlib.org/en/stable/client/fastapi.html)
|
|
126
|
+
- [AsyncOAuth1Client](https://docs.authlib.org/en/stable/oauth1/client/http/httpx.html)
|
|
127
|
+
- [AsyncOAuth2Client](https://docs.authlib.org/en/stable/oauth2/client/http/httpx.html#httpx-oauth-2-0)
|
|
128
|
+
- [OpenID Connect](https://docs.authlib.org/en/stable/oauth2/client/http/httpx.html#httpx-oauth-2-0)
|
|
129
|
+
- [AsyncAssertionClient](https://docs.authlib.org/en/stable/oauth2/client/http/httpx.html#async-service-account)
|
|
130
|
+
- [Flask OAuth Client](https://docs.authlib.org/en/stable/oauth2/client/web/flask.html)
|
|
131
|
+
- [Django OAuth Client](https://docs.authlib.org/en/stable/oauth2/client/web/django.html)
|
|
132
|
+
- [Starlette OAuth Client](https://docs.authlib.org/en/stable/oauth2/client/web/starlette.html)
|
|
133
|
+
- [FastAPI OAuth Client](https://docs.authlib.org/en/stable/oauth2/client/web/fastapi.html)
|
|
134
134
|
|
|
135
135
|
Build your own OAuth 1.0, OAuth 2.0, and OpenID Connect providers:
|
|
136
136
|
|
|
137
137
|
- Flask
|
|
138
|
-
- [Flask OAuth 1.0 Provider](https://docs.authlib.org/en/stable/flask/
|
|
139
|
-
- [Flask OAuth 2.0 Provider](https://docs.authlib.org/en/stable/flask/
|
|
140
|
-
- [Flask OpenID Connect 1.0 Provider](https://docs.authlib.org/en/stable/flask/
|
|
138
|
+
- [Flask OAuth 1.0 Provider](https://docs.authlib.org/en/stable/oauth1/provider/flask/index.html)
|
|
139
|
+
- [Flask OAuth 2.0 Provider](https://docs.authlib.org/en/stable/oauth2/authorization-server/flask/index.html)
|
|
140
|
+
- [Flask OpenID Connect 1.0 Provider](https://docs.authlib.org/en/stable/oauth2/authorization-server/flask/openid-connect.html)
|
|
141
141
|
- Django
|
|
142
|
-
- [Django OAuth 1.0 Provider](https://docs.authlib.org/en/stable/django/
|
|
143
|
-
- [Django OAuth 2.0 Provider](https://docs.authlib.org/en/stable/django/
|
|
144
|
-
- [Django OpenID Connect 1.0 Provider](https://docs.authlib.org/en/stable/django/
|
|
142
|
+
- [Django OAuth 1.0 Provider](https://docs.authlib.org/en/stable/oauth1/provider/django/index.html)
|
|
143
|
+
- [Django OAuth 2.0 Provider](https://docs.authlib.org/en/stable/oauth2/authorization-server/django/index.html)
|
|
144
|
+
- [Django OpenID Connect 1.0 Provider](https://docs.authlib.org/en/stable/oauth2/authorization-server/django/openid-connect.html)
|
|
145
145
|
|
|
146
146
|
## Useful Links
|
|
147
147
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Authlib
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.2
|
|
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
|
|
@@ -83,33 +83,33 @@ Authlib will deprecate `authlib.jose` module, please read:
|
|
|
83
83
|
|
|
84
84
|
Generic, spec-compliant implementation to build clients and providers:
|
|
85
85
|
|
|
86
|
-
- [The OAuth 1.0 Protocol](https://docs.authlib.org/en/stable/
|
|
87
|
-
- [RFC5849: The OAuth 1.0 Protocol](https://docs.authlib.org/en/stable/specs/rfc5849.html)
|
|
88
|
-
- [The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/stable/
|
|
89
|
-
- [RFC6749: The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/stable/specs/rfc6749.html)
|
|
90
|
-
- [RFC6750: The OAuth 2.0 Authorization Framework: Bearer Token Usage](https://docs.authlib.org/en/stable/specs/rfc6750.html)
|
|
91
|
-
- [RFC7009: OAuth 2.0 Token Revocation](https://docs.authlib.org/en/stable/specs/rfc7009.html)
|
|
92
|
-
- [RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants](https://docs.authlib.org/en/stable/specs/rfc7523.html)
|
|
93
|
-
- [RFC7591: OAuth 2.0 Dynamic Client Registration Protocol](https://docs.authlib.org/en/stable/specs/rfc7591.html)
|
|
94
|
-
- [RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol](https://docs.authlib.org/en/stable/specs/rfc7592.html)
|
|
95
|
-
- [RFC7636: Proof Key for Code Exchange by OAuth Public Clients](https://docs.authlib.org/en/stable/specs/rfc7636.html)
|
|
96
|
-
- [RFC7662: OAuth 2.0 Token Introspection](https://docs.authlib.org/en/stable/specs/rfc7662.html)
|
|
97
|
-
- [RFC8414: OAuth 2.0 Authorization Server Metadata](https://docs.authlib.org/en/stable/specs/rfc8414.html)
|
|
98
|
-
- [RFC8628: OAuth 2.0 Device Authorization Grant](https://docs.authlib.org/en/stable/specs/rfc8628.html)
|
|
99
|
-
- [RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens](https://docs.authlib.org/en/stable/specs/rfc9068.html)
|
|
100
|
-
- [RFC9101: The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)](https://docs.authlib.org/en/stable/specs/rfc9101.html)
|
|
101
|
-
- [RFC9207: OAuth 2.0 Authorization Server Issuer Identification](https://docs.authlib.org/en/stable/specs/rfc9207.html)
|
|
86
|
+
- [The OAuth 1.0 Protocol](https://docs.authlib.org/en/stable/oauth1/index.html)
|
|
87
|
+
- [RFC5849: The OAuth 1.0 Protocol](https://docs.authlib.org/en/stable/oauth1/specs/rfc5849.html)
|
|
88
|
+
- [The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/stable/oauth2/index.html)
|
|
89
|
+
- [RFC6749: The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/stable/oauth2/specs/rfc6749.html)
|
|
90
|
+
- [RFC6750: The OAuth 2.0 Authorization Framework: Bearer Token Usage](https://docs.authlib.org/en/stable/oauth2/specs/rfc6750.html)
|
|
91
|
+
- [RFC7009: OAuth 2.0 Token Revocation](https://docs.authlib.org/en/stable/oauth2/specs/rfc7009.html)
|
|
92
|
+
- [RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants](https://docs.authlib.org/en/stable/oauth2/specs/rfc7523.html)
|
|
93
|
+
- [RFC7591: OAuth 2.0 Dynamic Client Registration Protocol](https://docs.authlib.org/en/stable/oauth2/specs/rfc7591.html)
|
|
94
|
+
- [RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol](https://docs.authlib.org/en/stable/oauth2/specs/rfc7592.html)
|
|
95
|
+
- [RFC7636: Proof Key for Code Exchange by OAuth Public Clients](https://docs.authlib.org/en/stable/oauth2/specs/rfc7636.html)
|
|
96
|
+
- [RFC7662: OAuth 2.0 Token Introspection](https://docs.authlib.org/en/stable/oauth2/specs/rfc7662.html)
|
|
97
|
+
- [RFC8414: OAuth 2.0 Authorization Server Metadata](https://docs.authlib.org/en/stable/oauth2/specs/rfc8414.html)
|
|
98
|
+
- [RFC8628: OAuth 2.0 Device Authorization Grant](https://docs.authlib.org/en/stable/oauth2/specs/rfc8628.html)
|
|
99
|
+
- [RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens](https://docs.authlib.org/en/stable/oauth2/specs/rfc9068.html)
|
|
100
|
+
- [RFC9101: The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)](https://docs.authlib.org/en/stable/oauth2/specs/rfc9101.html)
|
|
101
|
+
- [RFC9207: OAuth 2.0 Authorization Server Issuer Identification](https://docs.authlib.org/en/stable/oauth2/specs/rfc9207.html)
|
|
102
102
|
- [Javascript Object Signing and Encryption](https://docs.authlib.org/en/stable/jose/index.html)
|
|
103
103
|
- [RFC7515: JSON Web Signature](https://docs.authlib.org/en/stable/jose/jws.html)
|
|
104
104
|
- [RFC7516: JSON Web Encryption](https://docs.authlib.org/en/stable/jose/jwe.html)
|
|
105
105
|
- [RFC7517: JSON Web Key](https://docs.authlib.org/en/stable/jose/jwk.html)
|
|
106
|
-
- [RFC7518: JSON Web Algorithms](https://docs.authlib.org/en/stable/specs/rfc7518.html)
|
|
106
|
+
- [RFC7518: JSON Web Algorithms](https://docs.authlib.org/en/stable/jose/specs/rfc7518.html)
|
|
107
107
|
- [RFC7519: JSON Web Token](https://docs.authlib.org/en/stable/jose/jwt.html)
|
|
108
|
-
- [RFC7638: JSON Web Key (JWK) Thumbprint](https://docs.authlib.org/en/stable/specs/rfc7638.html)
|
|
108
|
+
- [RFC7638: JSON Web Key (JWK) Thumbprint](https://docs.authlib.org/en/stable/jose/specs/rfc7638.html)
|
|
109
109
|
- [ ] RFC7797: JSON Web Signature (JWS) Unencoded Payload Option
|
|
110
|
-
- [RFC8037: ECDH in JWS and JWE](https://docs.authlib.org/en/stable/specs/rfc8037.html)
|
|
110
|
+
- [RFC8037: ECDH in JWS and JWE](https://docs.authlib.org/en/stable/jose/specs/rfc8037.html)
|
|
111
111
|
- [ ] draft-madden-jose-ecdh-1pu-04: Public Key Authenticated Encryption for JOSE: ECDH-1PU
|
|
112
|
-
- [OpenID Connect 1.0](https://docs.authlib.org/en/stable/specs/oidc.html)
|
|
112
|
+
- [OpenID Connect 1.0](https://docs.authlib.org/en/stable/oauth2/specs/oidc.html)
|
|
113
113
|
- [x] OpenID Connect Core 1.0
|
|
114
114
|
- [x] OpenID Connect Discovery 1.0
|
|
115
115
|
- [x] OpenID Connect Dynamic Client Registration 1.0
|
|
@@ -118,30 +118,30 @@ Generic, spec-compliant implementation to build clients and providers:
|
|
|
118
118
|
Connect third party OAuth providers with Authlib built-in client integrations:
|
|
119
119
|
|
|
120
120
|
- Requests
|
|
121
|
-
- [OAuth1Session](https://docs.authlib.org/en/stable/client/requests.html
|
|
122
|
-
- [OAuth2Session](https://docs.authlib.org/en/stable/client/requests.html#requests-oauth-2-0)
|
|
123
|
-
- [OpenID Connect](https://docs.authlib.org/en/stable/client/requests.html#requests-openid-connect)
|
|
124
|
-
- [AssertionSession](https://docs.authlib.org/en/stable/client/requests.html#requests-service-account)
|
|
121
|
+
- [OAuth1Session](https://docs.authlib.org/en/stable/oauth1/client/http/requests.html)
|
|
122
|
+
- [OAuth2Session](https://docs.authlib.org/en/stable/oauth2/client/http/requests.html#requests-oauth-2-0)
|
|
123
|
+
- [OpenID Connect](https://docs.authlib.org/en/stable/oauth2/client/http/requests.html#requests-openid-connect)
|
|
124
|
+
- [AssertionSession](https://docs.authlib.org/en/stable/oauth2/client/http/requests.html#requests-service-account)
|
|
125
125
|
- HTTPX
|
|
126
|
-
- [AsyncOAuth1Client](https://docs.authlib.org/en/stable/client/httpx.html
|
|
127
|
-
- [AsyncOAuth2Client](https://docs.authlib.org/en/stable/client/httpx.html#httpx-oauth-2-0)
|
|
128
|
-
- [OpenID Connect](https://docs.authlib.org/en/stable/client/httpx.html#httpx-oauth-2-0)
|
|
129
|
-
- [AsyncAssertionClient](https://docs.authlib.org/en/stable/client/httpx.html#async-service-account)
|
|
130
|
-
- [Flask OAuth Client](https://docs.authlib.org/en/stable/client/flask.html)
|
|
131
|
-
- [Django OAuth Client](https://docs.authlib.org/en/stable/client/django.html)
|
|
132
|
-
- [Starlette OAuth Client](https://docs.authlib.org/en/stable/client/starlette.html)
|
|
133
|
-
- [FastAPI OAuth Client](https://docs.authlib.org/en/stable/client/fastapi.html)
|
|
126
|
+
- [AsyncOAuth1Client](https://docs.authlib.org/en/stable/oauth1/client/http/httpx.html)
|
|
127
|
+
- [AsyncOAuth2Client](https://docs.authlib.org/en/stable/oauth2/client/http/httpx.html#httpx-oauth-2-0)
|
|
128
|
+
- [OpenID Connect](https://docs.authlib.org/en/stable/oauth2/client/http/httpx.html#httpx-oauth-2-0)
|
|
129
|
+
- [AsyncAssertionClient](https://docs.authlib.org/en/stable/oauth2/client/http/httpx.html#async-service-account)
|
|
130
|
+
- [Flask OAuth Client](https://docs.authlib.org/en/stable/oauth2/client/web/flask.html)
|
|
131
|
+
- [Django OAuth Client](https://docs.authlib.org/en/stable/oauth2/client/web/django.html)
|
|
132
|
+
- [Starlette OAuth Client](https://docs.authlib.org/en/stable/oauth2/client/web/starlette.html)
|
|
133
|
+
- [FastAPI OAuth Client](https://docs.authlib.org/en/stable/oauth2/client/web/fastapi.html)
|
|
134
134
|
|
|
135
135
|
Build your own OAuth 1.0, OAuth 2.0, and OpenID Connect providers:
|
|
136
136
|
|
|
137
137
|
- Flask
|
|
138
|
-
- [Flask OAuth 1.0 Provider](https://docs.authlib.org/en/stable/flask/
|
|
139
|
-
- [Flask OAuth 2.0 Provider](https://docs.authlib.org/en/stable/flask/
|
|
140
|
-
- [Flask OpenID Connect 1.0 Provider](https://docs.authlib.org/en/stable/flask/
|
|
138
|
+
- [Flask OAuth 1.0 Provider](https://docs.authlib.org/en/stable/oauth1/provider/flask/index.html)
|
|
139
|
+
- [Flask OAuth 2.0 Provider](https://docs.authlib.org/en/stable/oauth2/authorization-server/flask/index.html)
|
|
140
|
+
- [Flask OpenID Connect 1.0 Provider](https://docs.authlib.org/en/stable/oauth2/authorization-server/flask/openid-connect.html)
|
|
141
141
|
- Django
|
|
142
|
-
- [Django OAuth 1.0 Provider](https://docs.authlib.org/en/stable/django/
|
|
143
|
-
- [Django OAuth 2.0 Provider](https://docs.authlib.org/en/stable/django/
|
|
144
|
-
- [Django OpenID Connect 1.0 Provider](https://docs.authlib.org/en/stable/django/
|
|
142
|
+
- [Django OAuth 1.0 Provider](https://docs.authlib.org/en/stable/oauth1/provider/django/index.html)
|
|
143
|
+
- [Django OAuth 2.0 Provider](https://docs.authlib.org/en/stable/oauth2/authorization-server/django/index.html)
|
|
144
|
+
- [Django OpenID Connect 1.0 Provider](https://docs.authlib.org/en/stable/oauth2/authorization-server/django/openid-connect.html)
|
|
145
145
|
|
|
146
146
|
## Useful Links
|
|
147
147
|
|
|
@@ -45,33 +45,33 @@ Authlib will deprecate `authlib.jose` module, please read:
|
|
|
45
45
|
|
|
46
46
|
Generic, spec-compliant implementation to build clients and providers:
|
|
47
47
|
|
|
48
|
-
- [The OAuth 1.0 Protocol](https://docs.authlib.org/en/stable/
|
|
49
|
-
- [RFC5849: The OAuth 1.0 Protocol](https://docs.authlib.org/en/stable/specs/rfc5849.html)
|
|
50
|
-
- [The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/stable/
|
|
51
|
-
- [RFC6749: The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/stable/specs/rfc6749.html)
|
|
52
|
-
- [RFC6750: The OAuth 2.0 Authorization Framework: Bearer Token Usage](https://docs.authlib.org/en/stable/specs/rfc6750.html)
|
|
53
|
-
- [RFC7009: OAuth 2.0 Token Revocation](https://docs.authlib.org/en/stable/specs/rfc7009.html)
|
|
54
|
-
- [RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants](https://docs.authlib.org/en/stable/specs/rfc7523.html)
|
|
55
|
-
- [RFC7591: OAuth 2.0 Dynamic Client Registration Protocol](https://docs.authlib.org/en/stable/specs/rfc7591.html)
|
|
56
|
-
- [RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol](https://docs.authlib.org/en/stable/specs/rfc7592.html)
|
|
57
|
-
- [RFC7636: Proof Key for Code Exchange by OAuth Public Clients](https://docs.authlib.org/en/stable/specs/rfc7636.html)
|
|
58
|
-
- [RFC7662: OAuth 2.0 Token Introspection](https://docs.authlib.org/en/stable/specs/rfc7662.html)
|
|
59
|
-
- [RFC8414: OAuth 2.0 Authorization Server Metadata](https://docs.authlib.org/en/stable/specs/rfc8414.html)
|
|
60
|
-
- [RFC8628: OAuth 2.0 Device Authorization Grant](https://docs.authlib.org/en/stable/specs/rfc8628.html)
|
|
61
|
-
- [RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens](https://docs.authlib.org/en/stable/specs/rfc9068.html)
|
|
62
|
-
- [RFC9101: The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)](https://docs.authlib.org/en/stable/specs/rfc9101.html)
|
|
63
|
-
- [RFC9207: OAuth 2.0 Authorization Server Issuer Identification](https://docs.authlib.org/en/stable/specs/rfc9207.html)
|
|
48
|
+
- [The OAuth 1.0 Protocol](https://docs.authlib.org/en/stable/oauth1/index.html)
|
|
49
|
+
- [RFC5849: The OAuth 1.0 Protocol](https://docs.authlib.org/en/stable/oauth1/specs/rfc5849.html)
|
|
50
|
+
- [The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/stable/oauth2/index.html)
|
|
51
|
+
- [RFC6749: The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/stable/oauth2/specs/rfc6749.html)
|
|
52
|
+
- [RFC6750: The OAuth 2.0 Authorization Framework: Bearer Token Usage](https://docs.authlib.org/en/stable/oauth2/specs/rfc6750.html)
|
|
53
|
+
- [RFC7009: OAuth 2.0 Token Revocation](https://docs.authlib.org/en/stable/oauth2/specs/rfc7009.html)
|
|
54
|
+
- [RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants](https://docs.authlib.org/en/stable/oauth2/specs/rfc7523.html)
|
|
55
|
+
- [RFC7591: OAuth 2.0 Dynamic Client Registration Protocol](https://docs.authlib.org/en/stable/oauth2/specs/rfc7591.html)
|
|
56
|
+
- [RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol](https://docs.authlib.org/en/stable/oauth2/specs/rfc7592.html)
|
|
57
|
+
- [RFC7636: Proof Key for Code Exchange by OAuth Public Clients](https://docs.authlib.org/en/stable/oauth2/specs/rfc7636.html)
|
|
58
|
+
- [RFC7662: OAuth 2.0 Token Introspection](https://docs.authlib.org/en/stable/oauth2/specs/rfc7662.html)
|
|
59
|
+
- [RFC8414: OAuth 2.0 Authorization Server Metadata](https://docs.authlib.org/en/stable/oauth2/specs/rfc8414.html)
|
|
60
|
+
- [RFC8628: OAuth 2.0 Device Authorization Grant](https://docs.authlib.org/en/stable/oauth2/specs/rfc8628.html)
|
|
61
|
+
- [RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens](https://docs.authlib.org/en/stable/oauth2/specs/rfc9068.html)
|
|
62
|
+
- [RFC9101: The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)](https://docs.authlib.org/en/stable/oauth2/specs/rfc9101.html)
|
|
63
|
+
- [RFC9207: OAuth 2.0 Authorization Server Issuer Identification](https://docs.authlib.org/en/stable/oauth2/specs/rfc9207.html)
|
|
64
64
|
- [Javascript Object Signing and Encryption](https://docs.authlib.org/en/stable/jose/index.html)
|
|
65
65
|
- [RFC7515: JSON Web Signature](https://docs.authlib.org/en/stable/jose/jws.html)
|
|
66
66
|
- [RFC7516: JSON Web Encryption](https://docs.authlib.org/en/stable/jose/jwe.html)
|
|
67
67
|
- [RFC7517: JSON Web Key](https://docs.authlib.org/en/stable/jose/jwk.html)
|
|
68
|
-
- [RFC7518: JSON Web Algorithms](https://docs.authlib.org/en/stable/specs/rfc7518.html)
|
|
68
|
+
- [RFC7518: JSON Web Algorithms](https://docs.authlib.org/en/stable/jose/specs/rfc7518.html)
|
|
69
69
|
- [RFC7519: JSON Web Token](https://docs.authlib.org/en/stable/jose/jwt.html)
|
|
70
|
-
- [RFC7638: JSON Web Key (JWK) Thumbprint](https://docs.authlib.org/en/stable/specs/rfc7638.html)
|
|
70
|
+
- [RFC7638: JSON Web Key (JWK) Thumbprint](https://docs.authlib.org/en/stable/jose/specs/rfc7638.html)
|
|
71
71
|
- [ ] RFC7797: JSON Web Signature (JWS) Unencoded Payload Option
|
|
72
|
-
- [RFC8037: ECDH in JWS and JWE](https://docs.authlib.org/en/stable/specs/rfc8037.html)
|
|
72
|
+
- [RFC8037: ECDH in JWS and JWE](https://docs.authlib.org/en/stable/jose/specs/rfc8037.html)
|
|
73
73
|
- [ ] draft-madden-jose-ecdh-1pu-04: Public Key Authenticated Encryption for JOSE: ECDH-1PU
|
|
74
|
-
- [OpenID Connect 1.0](https://docs.authlib.org/en/stable/specs/oidc.html)
|
|
74
|
+
- [OpenID Connect 1.0](https://docs.authlib.org/en/stable/oauth2/specs/oidc.html)
|
|
75
75
|
- [x] OpenID Connect Core 1.0
|
|
76
76
|
- [x] OpenID Connect Discovery 1.0
|
|
77
77
|
- [x] OpenID Connect Dynamic Client Registration 1.0
|
|
@@ -80,30 +80,30 @@ Generic, spec-compliant implementation to build clients and providers:
|
|
|
80
80
|
Connect third party OAuth providers with Authlib built-in client integrations:
|
|
81
81
|
|
|
82
82
|
- Requests
|
|
83
|
-
- [OAuth1Session](https://docs.authlib.org/en/stable/client/requests.html
|
|
84
|
-
- [OAuth2Session](https://docs.authlib.org/en/stable/client/requests.html#requests-oauth-2-0)
|
|
85
|
-
- [OpenID Connect](https://docs.authlib.org/en/stable/client/requests.html#requests-openid-connect)
|
|
86
|
-
- [AssertionSession](https://docs.authlib.org/en/stable/client/requests.html#requests-service-account)
|
|
83
|
+
- [OAuth1Session](https://docs.authlib.org/en/stable/oauth1/client/http/requests.html)
|
|
84
|
+
- [OAuth2Session](https://docs.authlib.org/en/stable/oauth2/client/http/requests.html#requests-oauth-2-0)
|
|
85
|
+
- [OpenID Connect](https://docs.authlib.org/en/stable/oauth2/client/http/requests.html#requests-openid-connect)
|
|
86
|
+
- [AssertionSession](https://docs.authlib.org/en/stable/oauth2/client/http/requests.html#requests-service-account)
|
|
87
87
|
- HTTPX
|
|
88
|
-
- [AsyncOAuth1Client](https://docs.authlib.org/en/stable/client/httpx.html
|
|
89
|
-
- [AsyncOAuth2Client](https://docs.authlib.org/en/stable/client/httpx.html#httpx-oauth-2-0)
|
|
90
|
-
- [OpenID Connect](https://docs.authlib.org/en/stable/client/httpx.html#httpx-oauth-2-0)
|
|
91
|
-
- [AsyncAssertionClient](https://docs.authlib.org/en/stable/client/httpx.html#async-service-account)
|
|
92
|
-
- [Flask OAuth Client](https://docs.authlib.org/en/stable/client/flask.html)
|
|
93
|
-
- [Django OAuth Client](https://docs.authlib.org/en/stable/client/django.html)
|
|
94
|
-
- [Starlette OAuth Client](https://docs.authlib.org/en/stable/client/starlette.html)
|
|
95
|
-
- [FastAPI OAuth Client](https://docs.authlib.org/en/stable/client/fastapi.html)
|
|
88
|
+
- [AsyncOAuth1Client](https://docs.authlib.org/en/stable/oauth1/client/http/httpx.html)
|
|
89
|
+
- [AsyncOAuth2Client](https://docs.authlib.org/en/stable/oauth2/client/http/httpx.html#httpx-oauth-2-0)
|
|
90
|
+
- [OpenID Connect](https://docs.authlib.org/en/stable/oauth2/client/http/httpx.html#httpx-oauth-2-0)
|
|
91
|
+
- [AsyncAssertionClient](https://docs.authlib.org/en/stable/oauth2/client/http/httpx.html#async-service-account)
|
|
92
|
+
- [Flask OAuth Client](https://docs.authlib.org/en/stable/oauth2/client/web/flask.html)
|
|
93
|
+
- [Django OAuth Client](https://docs.authlib.org/en/stable/oauth2/client/web/django.html)
|
|
94
|
+
- [Starlette OAuth Client](https://docs.authlib.org/en/stable/oauth2/client/web/starlette.html)
|
|
95
|
+
- [FastAPI OAuth Client](https://docs.authlib.org/en/stable/oauth2/client/web/fastapi.html)
|
|
96
96
|
|
|
97
97
|
Build your own OAuth 1.0, OAuth 2.0, and OpenID Connect providers:
|
|
98
98
|
|
|
99
99
|
- Flask
|
|
100
|
-
- [Flask OAuth 1.0 Provider](https://docs.authlib.org/en/stable/flask/
|
|
101
|
-
- [Flask OAuth 2.0 Provider](https://docs.authlib.org/en/stable/flask/
|
|
102
|
-
- [Flask OpenID Connect 1.0 Provider](https://docs.authlib.org/en/stable/flask/
|
|
100
|
+
- [Flask OAuth 1.0 Provider](https://docs.authlib.org/en/stable/oauth1/provider/flask/index.html)
|
|
101
|
+
- [Flask OAuth 2.0 Provider](https://docs.authlib.org/en/stable/oauth2/authorization-server/flask/index.html)
|
|
102
|
+
- [Flask OpenID Connect 1.0 Provider](https://docs.authlib.org/en/stable/oauth2/authorization-server/flask/openid-connect.html)
|
|
103
103
|
- Django
|
|
104
|
-
- [Django OAuth 1.0 Provider](https://docs.authlib.org/en/stable/django/
|
|
105
|
-
- [Django OAuth 2.0 Provider](https://docs.authlib.org/en/stable/django/
|
|
106
|
-
- [Django OpenID Connect 1.0 Provider](https://docs.authlib.org/en/stable/django/
|
|
104
|
+
- [Django OAuth 1.0 Provider](https://docs.authlib.org/en/stable/oauth1/provider/django/index.html)
|
|
105
|
+
- [Django OAuth 2.0 Provider](https://docs.authlib.org/en/stable/oauth2/authorization-server/django/index.html)
|
|
106
|
+
- [Django OpenID Connect 1.0 Provider](https://docs.authlib.org/en/stable/oauth2/authorization-server/django/openid-connect.html)
|
|
107
107
|
|
|
108
108
|
## Useful Links
|
|
109
109
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import re
|
|
2
|
+
|
|
3
|
+
# Structurally validates BCP 47 language tags (RFC 5646).
|
|
4
|
+
# Accepts private-use tags (x-...) and standard tags (2-8 alpha + optional subtags).
|
|
5
|
+
# Does not validate subtags against the IANA registry.
|
|
6
|
+
_LANGUAGE_TAG_RE = re.compile(
|
|
7
|
+
r"^(x(-[a-zA-Z0-9]{1,8})+|[a-zA-Z]{2,8}(-[a-zA-Z0-9]{1,8})*)$"
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def is_valid_language_tag(tag):
|
|
12
|
+
"""Return True if tag is a structurally valid BCP 47 language tag."""
|
|
13
|
+
return isinstance(tag, str) and bool(_LANGUAGE_TAG_RE.match(tag))
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
from joserfc.jwk import OctKey
|
|
2
2
|
from joserfc.jwk import RSAKey
|
|
3
|
+
from joserfc.jwk import ECKey
|
|
4
|
+
from joserfc.jwk import OKPKey
|
|
3
5
|
|
|
4
6
|
from authlib.common.urls import add_params_to_qs
|
|
5
7
|
|
|
@@ -100,7 +102,7 @@ class PrivateKeyJWT(ClientSecretJWT):
|
|
|
100
102
|
alg = "RS256"
|
|
101
103
|
|
|
102
104
|
def sign(self, auth, token_endpoint):
|
|
103
|
-
if isinstance(auth.client_secret, RSAKey):
|
|
105
|
+
if isinstance(auth.client_secret, (RSAKey, ECKey, OKPKey)):
|
|
104
106
|
key = auth.client_secret
|
|
105
107
|
else:
|
|
106
108
|
key = RSAKey.import_key(auth.client_secret)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from authlib.common.language import is_valid_language_tag
|
|
1
2
|
from authlib.common.security import is_secure_transport
|
|
2
3
|
from authlib.common.urls import is_valid_url
|
|
3
4
|
from authlib.common.urls import urlparse
|
|
@@ -208,7 +209,7 @@ class AuthorizationServerMetadata(dict):
|
|
|
208
209
|
[RFC5646]. If omitted, the set of supported languages and scripts
|
|
209
210
|
is unspecified.
|
|
210
211
|
"""
|
|
211
|
-
|
|
212
|
+
validate_language_tags_array(self, "ui_locales_supported")
|
|
212
213
|
|
|
213
214
|
def validate_op_policy_uri(self):
|
|
214
215
|
"""OPTIONAL. URL that the authorization server provides to the
|
|
@@ -411,6 +412,15 @@ def validate_array_value(metadata, key):
|
|
|
411
412
|
raise ValueError(f'"{key}" MUST be JSON array')
|
|
412
413
|
|
|
413
414
|
|
|
415
|
+
def validate_language_tags_array(metadata, key):
|
|
416
|
+
validate_array_value(metadata, key)
|
|
417
|
+
values = metadata.get(key)
|
|
418
|
+
if values is not None:
|
|
419
|
+
for tag in values:
|
|
420
|
+
if not is_valid_language_tag(tag):
|
|
421
|
+
raise ValueError(f'"{key}" MUST contain BCP 47 language tags')
|
|
422
|
+
|
|
423
|
+
|
|
414
424
|
def validate_boolean_value(metadata, key):
|
|
415
425
|
if key not in metadata:
|
|
416
426
|
return
|
|
@@ -6,6 +6,7 @@ from joserfc.errors import InvalidClaimError
|
|
|
6
6
|
from joserfc.errors import MissingClaimError
|
|
7
7
|
|
|
8
8
|
from authlib.common.encoding import to_bytes
|
|
9
|
+
from authlib.common.language import is_valid_language_tag
|
|
9
10
|
from authlib.oauth2.claims import JWTClaims
|
|
10
11
|
from authlib.oauth2.rfc6749.util import scope_to_list
|
|
11
12
|
|
|
@@ -244,6 +245,12 @@ class UserInfo(dict):
|
|
|
244
245
|
"phone": ["phone_number", "phone_number_verified"],
|
|
245
246
|
}
|
|
246
247
|
|
|
248
|
+
def validate_locale(self):
|
|
249
|
+
"""Validate the locale claim is a BCP 47 language tag."""
|
|
250
|
+
locale = self.get("locale")
|
|
251
|
+
if locale is not None and not is_valid_language_tag(locale):
|
|
252
|
+
raise ValueError('"locale" MUST be a BCP 47 language tag')
|
|
253
|
+
|
|
247
254
|
def filter(self, scope: str):
|
|
248
255
|
"""Return a new UserInfo object containing only the claims matching the scope passed in parameter."""
|
|
249
256
|
scope = scope_to_list(scope)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from authlib.oauth2.rfc8414 import AuthorizationServerMetadata
|
|
2
2
|
from authlib.oauth2.rfc8414.models import validate_array_value
|
|
3
3
|
from authlib.oauth2.rfc8414.models import validate_boolean_value
|
|
4
|
+
from authlib.oauth2.rfc8414.models import validate_language_tags_array
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
class OpenIDProviderMetadata(AuthorizationServerMetadata):
|
|
@@ -236,7 +237,7 @@ class OpenIDProviderMetadata(AuthorizationServerMetadata):
|
|
|
236
237
|
language tag values. Not all languages and scripts are necessarily
|
|
237
238
|
supported for all Claim values.
|
|
238
239
|
"""
|
|
239
|
-
|
|
240
|
+
validate_language_tags_array(self, "claims_locales_supported")
|
|
240
241
|
|
|
241
242
|
def validate_claims_parameter_supported(self):
|
|
242
243
|
"""OPTIONAL. Boolean value specifying whether the OP supports use of
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|