This commit is contained in:
Iliyan Angelov
2025-12-01 06:50:10 +02:00
parent 91f51bc6fe
commit 62c1fe5951
4682 changed files with 544807 additions and 31208 deletions

View File

@@ -0,0 +1,178 @@
Metadata-Version: 2.4
Name: Authlib
Version: 1.6.5
Summary: The ultimate Python library in building OAuth and OpenID Connect servers and clients.
Author-email: Hsiaoming Yang <me@lepture.com>
License: BSD-3-Clause
Project-URL: Documentation, https://docs.authlib.org/
Project-URL: Purchase, https://authlib.org/plans
Project-URL: Issues, https://github.com/authlib/authlib/issues
Project-URL: Source, https://github.com/authlib/authlib
Project-URL: Donate, https://github.com/sponsors/lepture
Project-URL: Blog, https://blog.authlib.org/
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Security
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cryptography
Dynamic: license-file
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="docs/_static/dark-logo.svg" />
<img alt="Authlib" src="docs/_static/light-logo.svg" height="68" />
</picture>
[![Build Status](https://github.com/authlib/authlib/workflows/tests/badge.svg)](https://github.com/authlib/authlib/actions)
[![PyPI version](https://img.shields.io/pypi/v/authlib.svg)](https://pypi.org/project/authlib)
[![conda-forge version](https://img.shields.io/conda/v/conda-forge/authlib.svg?label=conda-forge&colorB=0090ff)](https://anaconda.org/conda-forge/authlib)
[![PyPI Downloads](https://static.pepy.tech/badge/authlib/month)](https://pepy.tech/projects/authlib)
[![Code Coverage](https://codecov.io/gh/authlib/authlib/graph/badge.svg?token=OWTdxAIsPI)](https://codecov.io/gh/authlib/authlib)
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=authlib_authlib&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=authlib_authlib)
</div>
The ultimate Python library in building OAuth and OpenID Connect servers.
JWS, JWK, JWA, JWT are included.
Authlib is compatible with Python3.9+.
## Migrations
Authlib will deprecate `authlib.jose` module, please read:
- [Migrating from `authlib.jose` to `joserfc`](https://jose.authlib.org/en/dev/migrations/authlib/)
## Sponsors
<table>
<tr>
<td><img align="middle" width="48" src="https://cdn.auth0.com/website/website/favicons/auth0-favicon.svg"></td>
<td>If you want to quickly add secure token-based authentication to Python projects, feel free to check Auth0's Python SDK and free plan at <a href="https://auth0.com/overview?utm_source=GHsponsor&utm_medium=GHsponsor&utm_campaign=authlib&utm_content=auth">auth0.com/overview</a>.</td>
</tr>
<tr>
<td><img align="middle" width="48" src="https://typlog.com/assets/icon-white.svg"></td>
<td>A blogging and podcast hosting platform with minimal design but powerful features. Host your blog and Podcast with <a href="https://typlog.com/">Typlog.com</a>.
</td>
</tr>
</table>
[**Fund Authlib to access additional features**](https://docs.authlib.org/en/latest/community/funding.html)
## Features
Generic, spec-compliant implementation to build clients and providers:
- [The OAuth 1.0 Protocol](https://docs.authlib.org/en/latest/basic/oauth1.html)
- [RFC5849: The OAuth 1.0 Protocol](https://docs.authlib.org/en/latest/specs/rfc5849.html)
- [The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/latest/basic/oauth2.html)
- [RFC6749: The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/latest/specs/rfc6749.html)
- [RFC6750: The OAuth 2.0 Authorization Framework: Bearer Token Usage](https://docs.authlib.org/en/latest/specs/rfc6750.html)
- [RFC7009: OAuth 2.0 Token Revocation](https://docs.authlib.org/en/latest/specs/rfc7009.html)
- [RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants](https://docs.authlib.org/en/latest/specs/rfc7523.html)
- [RFC7591: OAuth 2.0 Dynamic Client Registration Protocol](https://docs.authlib.org/en/latest/specs/rfc7591.html)
- [RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol](https://docs.authlib.org/en/latest/specs/rfc7592.html)
- [RFC7636: Proof Key for Code Exchange by OAuth Public Clients](https://docs.authlib.org/en/latest/specs/rfc7636.html)
- [RFC7662: OAuth 2.0 Token Introspection](https://docs.authlib.org/en/latest/specs/rfc7662.html)
- [RFC8414: OAuth 2.0 Authorization Server Metadata](https://docs.authlib.org/en/latest/specs/rfc8414.html)
- [RFC8628: OAuth 2.0 Device Authorization Grant](https://docs.authlib.org/en/latest/specs/rfc8628.html)
- [RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens](https://docs.authlib.org/en/latest/specs/rfc9068.html)
- [RFC9101: The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)](https://docs.authlib.org/en/latest/specs/rfc9101.html)
- [RFC9207: OAuth 2.0 Authorization Server Issuer Identification](https://docs.authlib.org/en/latest/specs/rfc9207.html)
- [Javascript Object Signing and Encryption](https://docs.authlib.org/en/latest/jose/index.html)
- [RFC7515: JSON Web Signature](https://docs.authlib.org/en/latest/jose/jws.html)
- [RFC7516: JSON Web Encryption](https://docs.authlib.org/en/latest/jose/jwe.html)
- [RFC7517: JSON Web Key](https://docs.authlib.org/en/latest/jose/jwk.html)
- [RFC7518: JSON Web Algorithms](https://docs.authlib.org/en/latest/specs/rfc7518.html)
- [RFC7519: JSON Web Token](https://docs.authlib.org/en/latest/jose/jwt.html)
- [RFC7638: JSON Web Key (JWK) Thumbprint](https://docs.authlib.org/en/latest/specs/rfc7638.html)
- [ ] RFC7797: JSON Web Signature (JWS) Unencoded Payload Option
- [RFC8037: ECDH in JWS and JWE](https://docs.authlib.org/en/latest/specs/rfc8037.html)
- [ ] draft-madden-jose-ecdh-1pu-04: Public Key Authenticated Encryption for JOSE: ECDH-1PU
- [OpenID Connect 1.0](https://docs.authlib.org/en/latest/specs/oidc.html)
- [x] OpenID Connect Core 1.0
- [x] OpenID Connect Discovery 1.0
- [x] OpenID Connect Dynamic Client Registration 1.0
Connect third party OAuth providers with Authlib built-in client integrations:
- Requests
- [OAuth1Session](https://docs.authlib.org/en/latest/client/requests.html#requests-oauth-1-0)
- [OAuth2Session](https://docs.authlib.org/en/latest/client/requests.html#requests-oauth-2-0)
- [OpenID Connect](https://docs.authlib.org/en/latest/client/requests.html#requests-openid-connect)
- [AssertionSession](https://docs.authlib.org/en/latest/client/requests.html#requests-service-account)
- HTTPX
- [AsyncOAuth1Client](https://docs.authlib.org/en/latest/client/httpx.html#httpx-oauth-1-0)
- [AsyncOAuth2Client](https://docs.authlib.org/en/latest/client/httpx.html#httpx-oauth-2-0)
- [OpenID Connect](https://docs.authlib.org/en/latest/client/httpx.html#httpx-oauth-2-0)
- [AsyncAssertionClient](https://docs.authlib.org/en/latest/client/httpx.html#async-service-account)
- [Flask OAuth Client](https://docs.authlib.org/en/latest/client/flask.html)
- [Django OAuth Client](https://docs.authlib.org/en/latest/client/django.html)
- [Starlette OAuth Client](https://docs.authlib.org/en/latest/client/starlette.html)
- [FastAPI OAuth Client](https://docs.authlib.org/en/latest/client/fastapi.html)
Build your own OAuth 1.0, OAuth 2.0, and OpenID Connect providers:
- Flask
- [Flask OAuth 1.0 Provider](https://docs.authlib.org/en/latest/flask/1/)
- [Flask OAuth 2.0 Provider](https://docs.authlib.org/en/latest/flask/2/)
- [Flask OpenID Connect 1.0 Provider](https://docs.authlib.org/en/latest/flask/2/openid-connect.html)
- Django
- [Django OAuth 1.0 Provider](https://docs.authlib.org/en/latest/django/1/)
- [Django OAuth 2.0 Provider](https://docs.authlib.org/en/latest/django/2/)
- [Django OpenID Connect 1.0 Provider](https://docs.authlib.org/en/latest/django/2/openid-connect.html)
## Useful Links
1. Homepage: <https://authlib.org/>.
2. Documentation: <https://docs.authlib.org/>.
3. Purchase Commercial License: <https://authlib.org/plans>.
4. Blog: <https://blog.authlib.org/>.
5. Twitter: <https://twitter.com/authlib>.
6. StackOverflow: <https://stackoverflow.com/questions/tagged/authlib>.
7. Other Repositories: <https://github.com/authlib>.
8. Subscribe Tidelift: [https://tidelift.com/subscription/pkg/pypi-authlib](https://tidelift.com/subscription/pkg/pypi-authlib?utm_source=pypi-authlib&utm_medium=referral&utm_campaign=links).
## Security Reporting
If you found security bugs, please do not send a public issue or patch.
You can send me email at <me@lepture.com>. Attachment with patch is welcome.
My PGP Key fingerprint is:
```
72F8 E895 A70C EBDF 4F2A DFE0 7E55 E3E0 118B 2B4C
```
Or, you can use the [Tidelift security contact](https://tidelift.com/security).
Tidelift will coordinate the fix and disclosure.
## License
Authlib offers two licenses:
1. BSD LICENSE
2. COMMERCIAL-LICENSE
Any project, open or closed source, can use the BSD license.
If your company needs commercial support, you can purchase a commercial license at
[Authlib Plans](https://authlib.org/plans). You can find more information at
<https://authlib.org/support>.

View File

@@ -0,0 +1,408 @@
authlib-1.6.5.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
authlib-1.6.5.dist-info/METADATA,sha256=JSpi4anvkVQ9zL3GuZR4mvuto9yjFI39uhUnGfKGwdY,9845
authlib-1.6.5.dist-info/RECORD,,
authlib-1.6.5.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
authlib-1.6.5.dist-info/licenses/LICENSE,sha256=jhtIUY3pxs0Ay0jH_luAI_2Q1VUsoS6-c2Kg3zDdvkU,1514
authlib-1.6.5.dist-info/top_level.txt,sha256=Rj3mJn0jhRuCs6x7ysI6hYE2PePbuxey6y6jswadAEY,8
authlib/__init__.py,sha256=9F2r7k-nrTBFVDVWk0oghhIpLioCwQtt-35ppwRNfGU,487
authlib/__pycache__/__init__.cpython-312.pyc,,
authlib/__pycache__/consts.cpython-312.pyc,,
authlib/__pycache__/deprecate.cpython-312.pyc,,
authlib/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
authlib/common/__pycache__/__init__.cpython-312.pyc,,
authlib/common/__pycache__/encoding.cpython-312.pyc,,
authlib/common/__pycache__/errors.cpython-312.pyc,,
authlib/common/__pycache__/security.cpython-312.pyc,,
authlib/common/__pycache__/urls.cpython-312.pyc,,
authlib/common/encoding.py,sha256=S80EkhVVJABStdEuZvQV1c47gQnu359fgLAFDmqLaP0,1544
authlib/common/errors.py,sha256=L4_CDCQ7M08lrnM17QJWrLXoIeqatzRT6WcFno4FKtE,1667
authlib/common/security.py,sha256=l1h1XneIeWVvjwqnkyaHMihXbEqh3nyBpANiCKxtd3k,514
authlib/common/urls.py,sha256=pCB5_cGXxpQckQgKMz-vhtObT07G75B8yUMpMHvx24I,4581
authlib/consts.py,sha256=9cqeotlkDe69rVuzp_CwFO01qxVvyzzzbB2UpHWEvDg,299
authlib/deprecate.py,sha256=BaH7IdSK0WEmanyJAl7-Rpmvm6NJcez-Z03k0OYPXl0,506
authlib/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
authlib/integrations/__pycache__/__init__.cpython-312.pyc,,
authlib/integrations/base_client/__init__.py,sha256=0nRNGKgwojLqaTwnbDfXqLiEjNY9aY4AST_zUtXy-WU,820
authlib/integrations/base_client/__pycache__/__init__.cpython-312.pyc,,
authlib/integrations/base_client/__pycache__/async_app.cpython-312.pyc,,
authlib/integrations/base_client/__pycache__/async_openid.cpython-312.pyc,,
authlib/integrations/base_client/__pycache__/errors.cpython-312.pyc,,
authlib/integrations/base_client/__pycache__/framework_integration.cpython-312.pyc,,
authlib/integrations/base_client/__pycache__/registry.cpython-312.pyc,,
authlib/integrations/base_client/__pycache__/sync_app.cpython-312.pyc,,
authlib/integrations/base_client/__pycache__/sync_openid.cpython-312.pyc,,
authlib/integrations/base_client/async_app.py,sha256=Pw3KIzxFtBG1ZXHg4hfV-D-hX0ubNU34s8bF9IHRm-g,5978
authlib/integrations/base_client/async_openid.py,sha256=imBoGouxPu4hMwjmxCu8JMgDADZOMdpCbc_B-LSULl4,2982
authlib/integrations/base_client/errors.py,sha256=Iniwp6d3XJ0Q3bYQcOB1tnCQhMKcYv8wLH7BAFHICAA,632
authlib/integrations/base_client/framework_integration.py,sha256=LQFGmr0RyebVWAw1rU7cEwIYK_WiWKA00IVMxn_H5PQ,1871
authlib/integrations/base_client/registry.py,sha256=GV0IJqZzPtsJHb-tl4t38K_Yvv3q4NPvp851V_UzDxY,4313
authlib/integrations/base_client/sync_app.py,sha256=3dWAUHefD1-3qoaWUr9w-rOwVsnJ2jB8GiKLMoYTDp4,12791
authlib/integrations/base_client/sync_openid.py,sha256=qtUXnzSqHZZATr3BejSBdTy51QkHg_r_i7GwWilvCHo,3165
authlib/integrations/django_client/__init__.py,sha256=z3jiicS7KZigQKbwVsNlYyIHYKDFdiJi0848iNkl8gk,516
authlib/integrations/django_client/__pycache__/__init__.cpython-312.pyc,,
authlib/integrations/django_client/__pycache__/apps.cpython-312.pyc,,
authlib/integrations/django_client/__pycache__/integration.cpython-312.pyc,,
authlib/integrations/django_client/apps.py,sha256=pUZSshw7cP9mVSN6_YD8eq_8hysSCbiPau38QBppmOM,3680
authlib/integrations/django_client/integration.py,sha256=VTUyAp7ijC0RfPyZ5_w0yqL1LfnrTzemFG68nNd-afU,651
authlib/integrations/django_oauth1/__init__.py,sha256=dXgyMkdXR5d6XpBnx_Wrkkrj7LebJrgQU7dK6lm84Dk,229
authlib/integrations/django_oauth1/__pycache__/__init__.cpython-312.pyc,,
authlib/integrations/django_oauth1/__pycache__/authorization_server.cpython-312.pyc,,
authlib/integrations/django_oauth1/__pycache__/nonce.cpython-312.pyc,,
authlib/integrations/django_oauth1/__pycache__/resource_protector.cpython-312.pyc,,
authlib/integrations/django_oauth1/authorization_server.py,sha256=xtI50oMRKfA5tkbuIWPQP98Wx5_-W6KZQ8NzNA4uloE,4560
authlib/integrations/django_oauth1/nonce.py,sha256=jwhnA3SFCoGtEN7LBLv3pyKc1rWepFM9_iTSpt6BvR4,396
authlib/integrations/django_oauth1/resource_protector.py,sha256=xSpHsX7X88IXwE4Qb0pHMPPiEag_ZalGBjFZqt9nG4o,2332
authlib/integrations/django_oauth2/__init__.py,sha256=gmWoCspRgvmtO3VuA34-FluF5pmgbo-oQyeD1KW2rVQ,333
authlib/integrations/django_oauth2/__pycache__/__init__.cpython-312.pyc,,
authlib/integrations/django_oauth2/__pycache__/authorization_server.cpython-312.pyc,,
authlib/integrations/django_oauth2/__pycache__/endpoints.cpython-312.pyc,,
authlib/integrations/django_oauth2/__pycache__/requests.cpython-312.pyc,,
authlib/integrations/django_oauth2/__pycache__/resource_protector.cpython-312.pyc,,
authlib/integrations/django_oauth2/__pycache__/signals.cpython-312.pyc,,
authlib/integrations/django_oauth2/authorization_server.py,sha256=6P0pYQpS83igXm-XyUmdIfTLq0_O3kpKApEVDynHaZA,4463
authlib/integrations/django_oauth2/endpoints.py,sha256=dlGwktdT_miFCZDKYTFaiKxBPxBlL0cGlJCsE19wBv4,1838
authlib/integrations/django_oauth2/requests.py,sha256=Qkk-G-VLlQwfh_QA2Wq9NBQr5EYnYGUSvX_ba9WZc5g,1850
authlib/integrations/django_oauth2/resource_protector.py,sha256=QTrO0nZWJVki2lggx80Ud9y9bM9wBTBRn4SXvchhMf0,2597
authlib/integrations/django_oauth2/signals.py,sha256=tc_NkIL4Gx55P6qlpRU19bCkkPiMLLehLoL95pSuKw0,235
authlib/integrations/flask_client/__init__.py,sha256=mtpFrXZD656128GjJYODkK0aLOozxIs2XYkU9WgmB5M,1765
authlib/integrations/flask_client/__pycache__/__init__.cpython-312.pyc,,
authlib/integrations/flask_client/__pycache__/apps.cpython-312.pyc,,
authlib/integrations/flask_client/__pycache__/integration.cpython-312.pyc,,
authlib/integrations/flask_client/apps.py,sha256=3bHPdP3V-0Vry_1Svja_YMrCFJD_4zpAgC0R2h3jrq8,4012
authlib/integrations/flask_client/integration.py,sha256=a2TbWN0QLEi_l2srr8RoKDRHkChmvymgugbvOTnG2dc,806
authlib/integrations/flask_oauth1/__init__.py,sha256=IJKe9D2jZdtZ2feLWBAaef5TIGw8WYpeUVvswA1S6lk,310
authlib/integrations/flask_oauth1/__pycache__/__init__.cpython-312.pyc,,
authlib/integrations/flask_oauth1/__pycache__/authorization_server.cpython-312.pyc,,
authlib/integrations/flask_oauth1/__pycache__/cache.cpython-312.pyc,,
authlib/integrations/flask_oauth1/__pycache__/resource_protector.cpython-312.pyc,,
authlib/integrations/flask_oauth1/authorization_server.py,sha256=mogA8tai-cU2-0c1JL8av_e47SXXbaEDbk6hjD9fEkE,6146
authlib/integrations/flask_oauth1/cache.py,sha256=iF_mvWvkv6S7n0bm5Q9kUqBIlXcmwgxx01chPZM27xo,3012
authlib/integrations/flask_oauth1/resource_protector.py,sha256=h3nDaEc1W7eRht4jLROURCDsZfFX9Ak9JyPGWJv63Eg,3842
authlib/integrations/flask_oauth2/__init__.py,sha256=cQ7vhDQuXp2R5IMPTpb6rR0ChKAt_tmY95mlrOjYXOc,284
authlib/integrations/flask_oauth2/__pycache__/__init__.cpython-312.pyc,,
authlib/integrations/flask_oauth2/__pycache__/authorization_server.cpython-312.pyc,,
authlib/integrations/flask_oauth2/__pycache__/errors.cpython-312.pyc,,
authlib/integrations/flask_oauth2/__pycache__/requests.cpython-312.pyc,,
authlib/integrations/flask_oauth2/__pycache__/resource_protector.cpython-312.pyc,,
authlib/integrations/flask_oauth2/__pycache__/signals.cpython-312.pyc,,
authlib/integrations/flask_oauth2/authorization_server.py,sha256=rWrRJh3pr6tito6OKYGTbdY4Y2OYMKyMmD20CtmVb1s,5911
authlib/integrations/flask_oauth2/errors.py,sha256=ku67ILaSYS9i028Ipx26TYslXTK9UWiumqf07tjbICo,1085
authlib/integrations/flask_oauth2/requests.py,sha256=DcLTETbx0OjNa8mpjRr4UKifuni1oXGQOHBlXF1WWSk,1480
authlib/integrations/flask_oauth2/resource_protector.py,sha256=s0LbjE0nTKbEIqngEe0chphOlULh9LmzVIiEdszd7ts,3875
authlib/integrations/flask_oauth2/signals.py,sha256=ZgwcCoNMSmrUQJHUv0uMSH9FBzdDE1izWg-0IcuKc6U,341
authlib/integrations/httpx_client/__init__.py,sha256=rx-XuWSaX5g33eYKLuzg5loNEN5tFwOS5jaKzuU6DHY,1107
authlib/integrations/httpx_client/__pycache__/__init__.cpython-312.pyc,,
authlib/integrations/httpx_client/__pycache__/assertion_client.cpython-312.pyc,,
authlib/integrations/httpx_client/__pycache__/oauth1_client.cpython-312.pyc,,
authlib/integrations/httpx_client/__pycache__/oauth2_client.cpython-312.pyc,,
authlib/integrations/httpx_client/__pycache__/utils.cpython-312.pyc,,
authlib/integrations/httpx_client/assertion_client.py,sha256=9G5z8bjo6tuegPQLSA8TVd87EB9Lw2kSToHD-2BqZAs,3714
authlib/integrations/httpx_client/oauth1_client.py,sha256=gEln9rwPVCWHw-iJDTa-IsO04Qz-FClkb6jhjuMj9oM,4606
authlib/integrations/httpx_client/oauth2_client.py,sha256=z7UPymDAHhDQmnYogjhFWqahpCpvMcHzZWhZdQ3kHZU,9215
authlib/integrations/httpx_client/utils.py,sha256=V97V1dcy1wK7Rmr7T35C7M2zsTAOrdmG_PcU4MV0XY0,942
authlib/integrations/requests_client/__init__.py,sha256=dJWn99gMa6NXQ0XfQSZczttF9OUX7a936L1PtHE-9mk,831
authlib/integrations/requests_client/__pycache__/__init__.cpython-312.pyc,,
authlib/integrations/requests_client/__pycache__/assertion_session.cpython-312.pyc,,
authlib/integrations/requests_client/__pycache__/oauth1_session.cpython-312.pyc,,
authlib/integrations/requests_client/__pycache__/oauth2_session.cpython-312.pyc,,
authlib/integrations/requests_client/__pycache__/utils.cpython-312.pyc,,
authlib/integrations/requests_client/assertion_session.py,sha256=oB_wsJjJddb5aXGEQA3XMMurYh5u9m2b8MzXFaL6mmI,2073
authlib/integrations/requests_client/oauth1_session.py,sha256=Jn_m0lOWyHTfM7onIEIKA8CX-kwtaB55KAF-358jV_U,2324
authlib/integrations/requests_client/oauth2_session.py,sha256=sf1w6igzC5d38PBCmdKBpb_3MAiHw5sucN1Sw4OKgsc,4979
authlib/integrations/requests_client/utils.py,sha256=k1g63rcfRsJAIyhRjIol1oe81KbZ7JO6GSrg_bqa4cE,294
authlib/integrations/sqla_oauth2/__init__.py,sha256=swHbsKMO9RwsgLLCKFV5Q1jGpXtGvot1PhBucp5b0UM,652
authlib/integrations/sqla_oauth2/__pycache__/__init__.cpython-312.pyc,,
authlib/integrations/sqla_oauth2/__pycache__/client_mixin.cpython-312.pyc,,
authlib/integrations/sqla_oauth2/__pycache__/functions.cpython-312.pyc,,
authlib/integrations/sqla_oauth2/__pycache__/tokens_mixins.cpython-312.pyc,,
authlib/integrations/sqla_oauth2/client_mixin.py,sha256=4hTqHeS34JUFJLLvOJqpfzBGo8FysYf22BW3l_a9qpY,4371
authlib/integrations/sqla_oauth2/functions.py,sha256=Lc_mK1LV_FonUUHXmswxlze7NPyAhs-pxW1pOGgWxXw,3156
authlib/integrations/sqla_oauth2/tokens_mixins.py,sha256=B62cFI-jZhtIU79of6l6Lxzia6tnutZHMeZrpSLIEd8,2261
authlib/integrations/starlette_client/__init__.py,sha256=qIPzeCFSCJ1AnCJ_I9tvmL2qDOJtaPUwgG7Mb4wz3VI,713
authlib/integrations/starlette_client/__pycache__/__init__.cpython-312.pyc,,
authlib/integrations/starlette_client/__pycache__/apps.cpython-312.pyc,,
authlib/integrations/starlette_client/__pycache__/integration.cpython-312.pyc,,
authlib/integrations/starlette_client/apps.py,sha256=3rIzMYCzdu4ajfyaHlBeFIJb6gI8lBjNl_Ry7VTT_go,4140
authlib/integrations/starlette_client/integration.py,sha256=Dlu7w36dPrBz_-ybcwmOasGrZprQiCQ9IQqd47VeDQk,2253
authlib/jose/__init__.py,sha256=wtdmtHrQV3a3-us9K6nVVGHrC82zSJ27FX106uUxeLI,1703
authlib/jose/__pycache__/__init__.cpython-312.pyc,,
authlib/jose/__pycache__/errors.cpython-312.pyc,,
authlib/jose/__pycache__/jwk.cpython-312.pyc,,
authlib/jose/__pycache__/util.cpython-312.pyc,,
authlib/jose/drafts/__init__.py,sha256=AXAw9r6-6XsVbugtoJ6zFn0u85iYDssVLLbDGm-HIWU,520
authlib/jose/drafts/__pycache__/__init__.cpython-312.pyc,,
authlib/jose/drafts/__pycache__/_jwe_algorithms.cpython-312.pyc,,
authlib/jose/drafts/__pycache__/_jwe_enc_cryptodome.cpython-312.pyc,,
authlib/jose/drafts/__pycache__/_jwe_enc_cryptography.cpython-312.pyc,,
authlib/jose/drafts/_jwe_algorithms.py,sha256=qkYzPAteYSs1jRZGc3lxBVPbYy8jFgf_O2GE-LW0xUM,7199
authlib/jose/drafts/_jwe_enc_cryptodome.py,sha256=-Qq-JWsBrui5-UJW1QqDltsJCygvWAicSkbQqcH0jdo,1848
authlib/jose/drafts/_jwe_enc_cryptography.py,sha256=yd63oNubl-vSMC8H_g8xFGCMa3AUEhOzrXQnGS2TBSU,1731
authlib/jose/errors.py,sha256=NK3sAewwLTZ6eaNS4QVcpndf3oL2CySrwsF9xiTWDqs,3199
authlib/jose/jwk.py,sha256=LqCE7K1WozgSR_UHwXEajwVJjjBwXkIKebT1Z_AzFE0,491
authlib/jose/rfc7515/__init__.py,sha256=ub5iDwyqk1z_W1QSFqtFn6tEJvLqEgMg6ftHmGVsSvQ,367
authlib/jose/rfc7515/__pycache__/__init__.cpython-312.pyc,,
authlib/jose/rfc7515/__pycache__/jws.cpython-312.pyc,,
authlib/jose/rfc7515/__pycache__/models.cpython-312.pyc,,
authlib/jose/rfc7515/jws.py,sha256=QmpynjXy9YgMDP9V1ESSqivA3fFkoAFmoWy4DjBfr6s,13720
authlib/jose/rfc7515/models.py,sha256=81IbGsdq9I4Qe0NIusgRia4G3CFsh70gWf2v9lT9kJA,2448
authlib/jose/rfc7516/__init__.py,sha256=85pDv76XJrL_ZVl89Thr6ilzM9yelMWGBad20klWjDM,514
authlib/jose/rfc7516/__pycache__/__init__.cpython-312.pyc,,
authlib/jose/rfc7516/__pycache__/jwe.cpython-312.pyc,,
authlib/jose/rfc7516/__pycache__/models.cpython-312.pyc,,
authlib/jose/rfc7516/jwe.py,sha256=MTOtywMG6Ji2-PM0paW4jx4r5q1zVC0GNL3pZveGHu4,30539
authlib/jose/rfc7516/models.py,sha256=vzYq1du-F59IqFlcGnTATVCDLEy0Tsisz5yF57tcppw,4381
authlib/jose/rfc7517/__init__.py,sha256=RmMT_4O1d4YaqVl_5V5bM0blqXqjdKZsdYNQObtTkPc,404
authlib/jose/rfc7517/__pycache__/__init__.cpython-312.pyc,,
authlib/jose/rfc7517/__pycache__/_cryptography_key.cpython-312.pyc,,
authlib/jose/rfc7517/__pycache__/asymmetric_key.cpython-312.pyc,,
authlib/jose/rfc7517/__pycache__/base_key.cpython-312.pyc,,
authlib/jose/rfc7517/__pycache__/jwk.cpython-312.pyc,,
authlib/jose/rfc7517/__pycache__/key_set.cpython-312.pyc,,
authlib/jose/rfc7517/_cryptography_key.py,sha256=bp-2kiKpzKdOWSuzMTCMhsyZdvdEUrv9nYVyNBlqqys,1361
authlib/jose/rfc7517/asymmetric_key.py,sha256=NoCPBm8rjoW1Lonyt-LP44_TZnwceRv6DKHoRb4DDRw,6464
authlib/jose/rfc7517/base_key.py,sha256=UCWMvQljfO2YJ7fkcVwDF2TSCSegHM_AI14KZsxEdK8,3358
authlib/jose/rfc7517/jwk.py,sha256=1brj2H43cvLFrNQIbYtz7CPr_MCjG6amZuAgdzZWmFA,2029
authlib/jose/rfc7517/key_set.py,sha256=5402vmOVxNplBgRTcLhj0sh09d8O8_XeyErG1yetnAs,1606
authlib/jose/rfc7518/__init__.py,sha256=qvxQ-N7dlZu2d4qg30rH0JkNp-_eeaY0VK20vAv4V_U,963
authlib/jose/rfc7518/__pycache__/__init__.cpython-312.pyc,,
authlib/jose/rfc7518/__pycache__/ec_key.cpython-312.pyc,,
authlib/jose/rfc7518/__pycache__/jwe_algs.cpython-312.pyc,,
authlib/jose/rfc7518/__pycache__/jwe_encs.cpython-312.pyc,,
authlib/jose/rfc7518/__pycache__/jwe_zips.cpython-312.pyc,,
authlib/jose/rfc7518/__pycache__/jws_algs.cpython-312.pyc,,
authlib/jose/rfc7518/__pycache__/oct_key.cpython-312.pyc,,
authlib/jose/rfc7518/__pycache__/rsa_key.cpython-312.pyc,,
authlib/jose/rfc7518/__pycache__/util.cpython-312.pyc,,
authlib/jose/rfc7518/ec_key.py,sha256=IIpDO9hKzDGhOd8CxwxH08iO_6j7sR86cJBm6wN0SFw,3921
authlib/jose/rfc7518/jwe_algs.py,sha256=tBw_lUUrs9RCYjyVi4OOu1_Fgh15Qtp-h4qHjCAc0e8,11422
authlib/jose/rfc7518/jwe_encs.py,sha256=A0wKhj9u9hF_B51U7nHxZFQ5TskRfJ5Uube1DlvB8Aw,5093
authlib/jose/rfc7518/jwe_zips.py,sha256=dFCRYN5J7_iHmiaB8t_FjUqRz966t2TYXrJ2lmvUJfg,1060
authlib/jose/rfc7518/jws_algs.py,sha256=tCnBPwtlQ0gSY5LgW1F5FaKNT36kWkPHLXGxHBLLQCs,6573
authlib/jose/rfc7518/oct_key.py,sha256=0XRdpxpFExYtlXse9ZAM6Bj-26fgZOHHBQdJoTdl1ec,2744
authlib/jose/rfc7518/rsa_key.py,sha256=PmX2WWd3rLmwihqGhJYPW6C50aEmYghfbsZKPO_4bRU,4581
authlib/jose/rfc7518/util.py,sha256=AMOegE7ypPLMSNF1a6hnhlHz55SmMtUbLB7ktZwRjAg,262
authlib/jose/rfc7519/__init__.py,sha256=uK34VbVT-Rt5vFodcoyghHGPyEpepLN3PjASpT14QBU,307
authlib/jose/rfc7519/__pycache__/__init__.cpython-312.pyc,,
authlib/jose/rfc7519/__pycache__/claims.cpython-312.pyc,,
authlib/jose/rfc7519/__pycache__/jwt.cpython-312.pyc,,
authlib/jose/rfc7519/claims.py,sha256=hF6i3iBVMmbTs1Vir5tFBdjru6lNp5HdszvCbY_5-hE,8783
authlib/jose/rfc7519/jwt.py,sha256=eRBCDh_dAEhkplDTuEIjFvTeu6M9VlAuyqiTwGRF50A,6185
authlib/jose/rfc8037/__init__.py,sha256=v3uUtTKu4IvvusbHalhYtI1dt0OfsQQOJvZftBCS9sM,118
authlib/jose/rfc8037/__pycache__/__init__.cpython-312.pyc,,
authlib/jose/rfc8037/__pycache__/jws_eddsa.cpython-312.pyc,,
authlib/jose/rfc8037/__pycache__/okp_key.cpython-312.pyc,,
authlib/jose/rfc8037/jws_eddsa.py,sha256=Em1smAvwdGyNnHn2Hj5bL4QBFDlymXF1iY_-j6Ce9h4,717
authlib/jose/rfc8037/okp_key.py,sha256=Ixo6Uh03HV09n_OuFxhV28bRMwKJNkRhWyRBCkz50LA,3995
authlib/jose/util.py,sha256=24oOQ3Vnm9gUa0rDyEau9-l-F7ovzsDV6VbzxTscCiU,1357
authlib/oauth1/__init__.py,sha256=XCfnQRF0ImgdyQitEiymsDptLP7v3VcSO1RQWzBPNPs,933
authlib/oauth1/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth1/__pycache__/client.cpython-312.pyc,,
authlib/oauth1/__pycache__/errors.cpython-312.pyc,,
authlib/oauth1/client.py,sha256=PkrO_rpFDZnXQp586SkoLe7rLrz4i4ISYFBv_3UyxAk,6737
authlib/oauth1/errors.py,sha256=pg0NaUgENjfTN_ba50_yQB9aSNe5Mte5MDlikFuypBY,46
authlib/oauth1/rfc5849/__init__.py,sha256=Ta7spUuDIW4nBxQoDOZHUZYj42hjyl2h-T7lLq2xDeM,1136
authlib/oauth1/rfc5849/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth1/rfc5849/__pycache__/authorization_server.cpython-312.pyc,,
authlib/oauth1/rfc5849/__pycache__/base_server.cpython-312.pyc,,
authlib/oauth1/rfc5849/__pycache__/client_auth.cpython-312.pyc,,
authlib/oauth1/rfc5849/__pycache__/errors.cpython-312.pyc,,
authlib/oauth1/rfc5849/__pycache__/models.cpython-312.pyc,,
authlib/oauth1/rfc5849/__pycache__/parameters.cpython-312.pyc,,
authlib/oauth1/rfc5849/__pycache__/resource_protector.cpython-312.pyc,,
authlib/oauth1/rfc5849/__pycache__/rsa.cpython-312.pyc,,
authlib/oauth1/rfc5849/__pycache__/signature.cpython-312.pyc,,
authlib/oauth1/rfc5849/__pycache__/util.cpython-312.pyc,,
authlib/oauth1/rfc5849/__pycache__/wrapper.cpython-312.pyc,,
authlib/oauth1/rfc5849/authorization_server.py,sha256=y-vDQ79-CFjCl05V9kYqTDhFdCGCMZ9wY9S66mMjmBc,13924
authlib/oauth1/rfc5849/base_server.py,sha256=BtBnisyOWP1epfzyp9A5zvMZu3rmCJazyHk9XEtpg8w,3972
authlib/oauth1/rfc5849/client_auth.py,sha256=ovx0Hx5LfSX6hCezFPsHupIsiP0Lc0pfy80cPuwS-0k,7079
authlib/oauth1/rfc5849/errors.py,sha256=iHVEoxrP0ieSjTJO2I9ThG2TvLs3XtRDssuCvu53OsY,2285
authlib/oauth1/rfc5849/models.py,sha256=Pvh-7iKXU3zkMYq1nYbdAaxL3Vdg95cxmdaC5-KWxxg,3418
authlib/oauth1/rfc5849/parameters.py,sha256=XpAcRz9MZjIUIs6IbthBK_fWzcL2Iy9jHUnFn3-W7zk,3532
authlib/oauth1/rfc5849/resource_protector.py,sha256=sqZw4y0Eg4qsVggXyhbHMcui8nRp3OhAgtjX9eUH21U,1279
authlib/oauth1/rfc5849/rsa.py,sha256=X2Dtld9hNnpi7RK_0sEuZXVPfi81aRyfEcKHshOmZdc,907
authlib/oauth1/rfc5849/signature.py,sha256=7SGCVUm_Qb-MAeRYUelKVyOqfbfuu39dBkxT58HeAfs,14164
authlib/oauth1/rfc5849/util.py,sha256=p9Kz8TkRqau3a-lQSJNCm7Dm79GG8fk5xTKjhNAEkvc,167
authlib/oauth1/rfc5849/wrapper.py,sha256=_7Tl5K6_GkWtjXlr6o1jC-I2ZdgDem9p_nsuD4t63YQ,4073
authlib/oauth2/__init__.py,sha256=okdXo25jYgXttumxbh7HxhhKeQAVAfdAR07BiHu7h6M,519
authlib/oauth2/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/__pycache__/auth.cpython-312.pyc,,
authlib/oauth2/__pycache__/base.cpython-312.pyc,,
authlib/oauth2/__pycache__/client.cpython-312.pyc,,
authlib/oauth2/auth.py,sha256=DsbUEgD1igRkeWNiOHdZV8FDlHTDr1nWwPZJJU8_qtM,3587
authlib/oauth2/base.py,sha256=8ZG02kdskhdh5vfK4P2nSsnE1WcwSUxsx5banmYJyVk,2025
authlib/oauth2/client.py,sha256=Txg4tghGHItiTE2TTzDi8r-3V6aCEf78oOgaQtUSRx8,18938
authlib/oauth2/rfc6749/__init__.py,sha256=35h_BcWs2rFC62A0U2AlVpMZCVnD74ddZELK35VTqF8,2845
authlib/oauth2/rfc6749/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc6749/__pycache__/authenticate_client.cpython-312.pyc,,
authlib/oauth2/rfc6749/__pycache__/authorization_server.cpython-312.pyc,,
authlib/oauth2/rfc6749/__pycache__/errors.cpython-312.pyc,,
authlib/oauth2/rfc6749/__pycache__/hooks.cpython-312.pyc,,
authlib/oauth2/rfc6749/__pycache__/models.cpython-312.pyc,,
authlib/oauth2/rfc6749/__pycache__/parameters.cpython-312.pyc,,
authlib/oauth2/rfc6749/__pycache__/requests.cpython-312.pyc,,
authlib/oauth2/rfc6749/__pycache__/resource_protector.cpython-312.pyc,,
authlib/oauth2/rfc6749/__pycache__/token_endpoint.cpython-312.pyc,,
authlib/oauth2/rfc6749/__pycache__/util.cpython-312.pyc,,
authlib/oauth2/rfc6749/__pycache__/wrappers.cpython-312.pyc,,
authlib/oauth2/rfc6749/authenticate_client.py,sha256=nFBxSrw62zLYl1JRON3rjCv_BUZzTivZ7HYuqnkdQmg,3985
authlib/oauth2/rfc6749/authorization_server.py,sha256=GhuWgVVxuJ7fxwLUA-kHtLuo0DPmd0hM_sfYEV0gziA,13367
authlib/oauth2/rfc6749/errors.py,sha256=FfT5OJJEk0RJaUjJKT1v_npN5AvCUuASqP8LtX2e4xo,7242
authlib/oauth2/rfc6749/grants/__init__.py,sha256=7WmResYhXjt0RfzHvrh5sHOQqZURr3FphSO-dmZc9FI,1292
authlib/oauth2/rfc6749/grants/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc6749/grants/__pycache__/authorization_code.cpython-312.pyc,,
authlib/oauth2/rfc6749/grants/__pycache__/base.cpython-312.pyc,,
authlib/oauth2/rfc6749/grants/__pycache__/client_credentials.cpython-312.pyc,,
authlib/oauth2/rfc6749/grants/__pycache__/implicit.cpython-312.pyc,,
authlib/oauth2/rfc6749/grants/__pycache__/refresh_token.cpython-312.pyc,,
authlib/oauth2/rfc6749/grants/__pycache__/resource_owner_password_credentials.cpython-312.pyc,,
authlib/oauth2/rfc6749/grants/authorization_code.py,sha256=CXp1RTezTAYI2yxMUtyW22HeuZb4Q_E1X_c6SRKc3ag,15604
authlib/oauth2/rfc6749/grants/base.py,sha256=59YgBIEvYDoUUbGkk0A7lgLXeRnqCir1imvUV_YZqWc,5283
authlib/oauth2/rfc6749/grants/client_credentials.py,sha256=dgx3jfPxrTyaY5Has7zGZw7ec6817R_KiEmlWkojODE,4016
authlib/oauth2/rfc6749/grants/implicit.py,sha256=tCwQnM-TTxDxYzsbx3sb3BkQUpObwoA4ZjhD8XnktoE,9128
authlib/oauth2/rfc6749/grants/refresh_token.py,sha256=Lvv_5FmZnnpw33pE4hi3vit921Yj-PH9wSw5AhVH2yU,6569
authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py,sha256=XXjKGEGwgZlF2uhjKUWTDuwBua348rjpG_ujX0l5Aoo,5839
authlib/oauth2/rfc6749/hooks.py,sha256=v8emOHmENAen3WbOXgmhLwHur6_i5QUgRE5NNXI_ukI,1004
authlib/oauth2/rfc6749/models.py,sha256=PZO-owOyb1RzbmD-xdYwO_Q6Si57pqFGPqhDXiDhNVs,7773
authlib/oauth2/rfc6749/parameters.py,sha256=-hauWerU6UlMuyVA-oxQaWc_r_y5BfDVnz7nh-oZd7E,8564
authlib/oauth2/rfc6749/requests.py,sha256=8m2bVR9KrUGzqFRBI8aXp7h-Y3a8H6wLY5hLajYiIRM,5095
authlib/oauth2/rfc6749/resource_protector.py,sha256=OKXtwUVn0kgK55mIzc9mGNbfUpwoOWTxb105Td5iVPE,5404
authlib/oauth2/rfc6749/token_endpoint.py,sha256=kxjK39EHBgeD7uvJLyoLF5DAr1ef4l31jpCt6C4gYJ0,1103
authlib/oauth2/rfc6749/util.py,sha256=--0YfF2ZVHTVMPGKD10iPqj02WeiDhXuYttX4tRleVM,1174
authlib/oauth2/rfc6749/wrappers.py,sha256=g59stDpzoJjE6koXlwBNdGZDMgi25SxBNeJtAmtyb4I,805
authlib/oauth2/rfc6750/__init__.py,sha256=_ytmQznohUUqnCQturfWSTt03FhUt2DFEsIwvJwJLS0,638
authlib/oauth2/rfc6750/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc6750/__pycache__/errors.cpython-312.pyc,,
authlib/oauth2/rfc6750/__pycache__/parameters.cpython-312.pyc,,
authlib/oauth2/rfc6750/__pycache__/token.cpython-312.pyc,,
authlib/oauth2/rfc6750/__pycache__/validator.cpython-312.pyc,,
authlib/oauth2/rfc6750/errors.py,sha256=kBIL08jGmUqySRa0-KPUxdnMj1GX_eseU4bi9QS1rKI,2849
authlib/oauth2/rfc6750/parameters.py,sha256=sCfDrLjqoyoXpwVCvtzHR7EuZZEQytark1n2p3WIU6U,1235
authlib/oauth2/rfc6750/token.py,sha256=a8JVyne-CW9R_6tqD_aGruU938ccIOxtesoQ3670dgY,3505
authlib/oauth2/rfc6750/validator.py,sha256=02_E1wiFTWlkLfA7NMNAh5EBzuDBl4jRBq7VmSG5hpQ,1462
authlib/oauth2/rfc7009/__init__.py,sha256=0vDQNPYWbgeVl8sYMdDsGOxDm-wR_Bqn3kSayQC5Z08,333
authlib/oauth2/rfc7009/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc7009/__pycache__/parameters.cpython-312.pyc,,
authlib/oauth2/rfc7009/__pycache__/revocation.cpython-312.pyc,,
authlib/oauth2/rfc7009/parameters.py,sha256=eR594GRPMbEe5fGd5rXnF95mzFUGTTi_ZSbe4N2lciE,821
authlib/oauth2/rfc7009/revocation.py,sha256=N8u7g-in2pCImMzlF4XEi_2ioRp3ARO5dijL4snNVZ4,4171
authlib/oauth2/rfc7521/__init__.py,sha256=PgfdlMuj1EqqMOYXSYgDq0QvYt--I5uKchAkdgb8l-s,67
authlib/oauth2/rfc7521/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc7521/__pycache__/client.cpython-312.pyc,,
authlib/oauth2/rfc7521/client.py,sha256=Ofn6V9Jj8J44--YN3Y_5OSj0va7Ve0Ujxn9zDHAMjWY,2864
authlib/oauth2/rfc7523/__init__.py,sha256=K8UGwqfW8JDQMSANlFrANkN4wUw15ZeEnxl0g2k2ly8,857
authlib/oauth2/rfc7523/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc7523/__pycache__/assertion.cpython-312.pyc,,
authlib/oauth2/rfc7523/__pycache__/auth.cpython-312.pyc,,
authlib/oauth2/rfc7523/__pycache__/client.cpython-312.pyc,,
authlib/oauth2/rfc7523/__pycache__/jwt_bearer.cpython-312.pyc,,
authlib/oauth2/rfc7523/__pycache__/token.cpython-312.pyc,,
authlib/oauth2/rfc7523/__pycache__/validator.cpython-312.pyc,,
authlib/oauth2/rfc7523/assertion.py,sha256=ZHJkmMpVIdVuhJ7JTeUVH1kO9vTEvr03XQ0RdSm0oyg,2052
authlib/oauth2/rfc7523/auth.py,sha256=dcDyNT4Gwv-gnbh0WNiYQclP1X0EA_DTHflYsR5ddfg,3445
authlib/oauth2/rfc7523/client.py,sha256=AEu015HgpLWdyAiLWhuCseMGdgF3Yd4-wXHdUWRFYAA,4813
authlib/oauth2/rfc7523/jwt_bearer.py,sha256=hndsbDgOnpS-hL81KzbvsFG7v4e-UHNuocDZQj5meis,6970
authlib/oauth2/rfc7523/token.py,sha256=olIDs43sKuVtrOis5l7tRjJS-p_ns1c1VWkf9NUgMeE,3384
authlib/oauth2/rfc7523/validator.py,sha256=4d0FHSi8UR9pLlyYRpG8M2lW8MvYZyoOuhS-RpZoNAA,1668
authlib/oauth2/rfc7591/__init__.py,sha256=BC7HMHZmLvgHIcpU3uRP48IHnVyeS77LADhhRw5h9aY,694
authlib/oauth2/rfc7591/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc7591/__pycache__/claims.cpython-312.pyc,,
authlib/oauth2/rfc7591/__pycache__/endpoint.cpython-312.pyc,,
authlib/oauth2/rfc7591/__pycache__/errors.cpython-312.pyc,,
authlib/oauth2/rfc7591/claims.py,sha256=wAsPmqOD-qYPrZpCJxphLOrIPEthUJPml6O8I7J26n4,12169
authlib/oauth2/rfc7591/endpoint.py,sha256=1SeM471z3G31RPTAlQcH0AG7eEx9fcMwnm67iNwpGeA,7183
authlib/oauth2/rfc7591/errors.py,sha256=oflYk0Qj9FBIU6eBvqgIpUMHK2dA73A8Y5UWOXZMmq4,1106
authlib/oauth2/rfc7592/__init__.py,sha256=8oCqEJwbLOyFLq9qmEFy2WFu6-bj9rCUpJMj0ICTZSA,295
authlib/oauth2/rfc7592/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc7592/__pycache__/endpoint.cpython-312.pyc,,
authlib/oauth2/rfc7592/endpoint.py,sha256=CkY9RP3w4f3KXAHl4Mzqq9OtJlL7pgY8V1RyBkjHyBw,8788
authlib/oauth2/rfc7636/__init__.py,sha256=lWumAvrbKsDAHnagFG7LgOuZvTKSUZo7nZs2CBmX49Y,342
authlib/oauth2/rfc7636/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc7636/__pycache__/challenge.cpython-312.pyc,,
authlib/oauth2/rfc7636/challenge.py,sha256=FjejIo_Z04pP-TAUOxcNc4PA_lywP41IwCYnNja4kvs,5790
authlib/oauth2/rfc7662/__init__.py,sha256=usKnlDsyVkBLz3eEt0_QdE-sjOfvPoZKbCL8Yzkfl8I,403
authlib/oauth2/rfc7662/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc7662/__pycache__/introspection.cpython-312.pyc,,
authlib/oauth2/rfc7662/__pycache__/models.cpython-312.pyc,,
authlib/oauth2/rfc7662/__pycache__/token_validator.cpython-312.pyc,,
authlib/oauth2/rfc7662/introspection.py,sha256=RDDvOtwYvaqdnXzLkeOwGizb4YMbbEMAj-uR6il_9bk,5292
authlib/oauth2/rfc7662/models.py,sha256=__VzvmldZmW-teoisACz5Zpg_EAiIGRcsjaC0cCeXhc,989
authlib/oauth2/rfc7662/token_validator.py,sha256=pqyIpkEixMkD1PqRngYTFGdNctyq0sMzcA7CbA3q5wg,1378
authlib/oauth2/rfc8414/__init__.py,sha256=xw7ADhba6QX6LAZB7c2XKS1XuQf9Y1NeW2vCgaVSNl4,340
authlib/oauth2/rfc8414/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc8414/__pycache__/models.cpython-312.pyc,,
authlib/oauth2/rfc8414/__pycache__/well_known.cpython-312.pyc,,
authlib/oauth2/rfc8414/models.py,sha256=-c3IXwNXSYoDRy_2Z20cv8UwOLXgaFmtbJ33d8lH0tg,17594
authlib/oauth2/rfc8414/well_known.py,sha256=3KG49E-KcDzSUBD2Ag1mfxm2rl_bRMqvJBQD21-wiOs,727
authlib/oauth2/rfc8628/__init__.py,sha256=ImL1qoQwE4RTFcQSZTRKQPBKhEoFx2fk6qqMX24VLDg,754
authlib/oauth2/rfc8628/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc8628/__pycache__/device_code.cpython-312.pyc,,
authlib/oauth2/rfc8628/__pycache__/endpoint.cpython-312.pyc,,
authlib/oauth2/rfc8628/__pycache__/errors.cpython-312.pyc,,
authlib/oauth2/rfc8628/__pycache__/models.cpython-312.pyc,,
authlib/oauth2/rfc8628/device_code.py,sha256=YAHw5VvlgV1brFKB1JzDKbduapqCHm9JO20QGbIqhY8,7900
authlib/oauth2/rfc8628/endpoint.py,sha256=a6dRFcoGTbVdrBRDQZ6jox-HBFInaj0eTdY_K3B2CGo,7123
authlib/oauth2/rfc8628/errors.py,sha256=XDh0Bw64xiaRNtggyFD5ItFgNZdve0D0n7f3cW6gi2s,922
authlib/oauth2/rfc8628/models.py,sha256=ADXFQTABYQJXoziBCInxRpzRmzRkaJxZRKYidndIIBo,827
authlib/oauth2/rfc8693/__init__.py,sha256=mPLmPTt-oVApxP2N1hvOMxfRY6zHvksDDrgZQH_8evU,162
authlib/oauth2/rfc8693/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc9068/__init__.py,sha256=8JCvCUfEnHLqPkEm96MgdeVYlyCzE6fLSeAWYVWB_sc,332
authlib/oauth2/rfc9068/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc9068/__pycache__/claims.cpython-312.pyc,,
authlib/oauth2/rfc9068/__pycache__/introspection.cpython-312.pyc,,
authlib/oauth2/rfc9068/__pycache__/revocation.cpython-312.pyc,,
authlib/oauth2/rfc9068/__pycache__/token.cpython-312.pyc,,
authlib/oauth2/rfc9068/__pycache__/token_validator.cpython-312.pyc,,
authlib/oauth2/rfc9068/claims.py,sha256=Q0itcAFWKMMKGSBPjW5qiZ67EXsg-EouLsKryXMOjug,1981
authlib/oauth2/rfc9068/introspection.py,sha256=z9xcX4sJZSAIIXMYjjTP-y8R6D96Tw8kJw31PhGZLQw,4385
authlib/oauth2/rfc9068/revocation.py,sha256=txYDfyq3sQ7wNAGM3HmfscgE4vdlWkwY4FFGnPe8RiM,2650
authlib/oauth2/rfc9068/token.py,sha256=JBH4iuCDclDv62a9F0qdh1ysg3tBEVMadmn2nA733KI,8613
authlib/oauth2/rfc9068/token_validator.py,sha256=DLH91dL5Ocm_stf2yoCEKE-mEIN01zfrf6Suse3nYuI,6865
authlib/oauth2/rfc9101/__init__.py,sha256=OV66ZJbs2h_iJ0iPH3UvWg_kUpCxDI2l82ul1hCUfdI,267
authlib/oauth2/rfc9101/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc9101/__pycache__/authorization_server.cpython-312.pyc,,
authlib/oauth2/rfc9101/__pycache__/discovery.cpython-312.pyc,,
authlib/oauth2/rfc9101/__pycache__/errors.cpython-312.pyc,,
authlib/oauth2/rfc9101/__pycache__/registration.cpython-312.pyc,,
authlib/oauth2/rfc9101/authorization_server.py,sha256=E-zLhrLzLD8Wgz7Q0Tf-gxBsISIKmoTmYk66koxM6M0,10624
authlib/oauth2/rfc9101/discovery.py,sha256=0Y3LnMCVzBBq5brWsru_A1fOJmdkNH6lUJ9mL8_yd18,443
authlib/oauth2/rfc9101/errors.py,sha256=aZLygyagATIo1UZ2iAF3DoBYtJGB0n03hqqoKQpKpvE,999
authlib/oauth2/rfc9101/registration.py,sha256=fkfN0Ymc7WCUTpcu4bF6WXDlKCmbioR9fElSD20VODs,1299
authlib/oauth2/rfc9207/__init__.py,sha256=5LKVKAH596fewYYJEHYLPLrLskBmXeqboBSAoyYeccM,70
authlib/oauth2/rfc9207/__pycache__/__init__.cpython-312.pyc,,
authlib/oauth2/rfc9207/__pycache__/parameter.cpython-312.pyc,,
authlib/oauth2/rfc9207/parameter.py,sha256=SfQAFDgHHkpZbzay-_7jHOIyIeQ15dIutW6m3H51M18,1696
authlib/oidc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
authlib/oidc/__pycache__/__init__.cpython-312.pyc,,
authlib/oidc/core/__init__.py,sha256=VSzzSDb5HIrFHnjpLQ8qwxgxLHnOqaCbHsLLnldbnO4,863
authlib/oidc/core/__pycache__/__init__.cpython-312.pyc,,
authlib/oidc/core/__pycache__/claims.cpython-312.pyc,,
authlib/oidc/core/__pycache__/errors.cpython-312.pyc,,
authlib/oidc/core/__pycache__/models.cpython-312.pyc,,
authlib/oidc/core/__pycache__/userinfo.cpython-312.pyc,,
authlib/oidc/core/__pycache__/util.cpython-312.pyc,,
authlib/oidc/core/claims.py,sha256=ZN7ortm_FytflhhSNIW9LtUhbrwcnd1su_BZv691q54,11521
authlib/oidc/core/errors.py,sha256=f-71kRG2Nf2cN95f7PCKucgCcPphITtGBhcsjcjhE6U,2892
authlib/oidc/core/grants/__init__.py,sha256=-SjelrkrD35bnb5rIZiBpbiLxgiJtwMXHJXHr8ovQyo,243
authlib/oidc/core/grants/__pycache__/__init__.cpython-312.pyc,,
authlib/oidc/core/grants/__pycache__/code.cpython-312.pyc,,
authlib/oidc/core/grants/__pycache__/hybrid.cpython-312.pyc,,
authlib/oidc/core/grants/__pycache__/implicit.cpython-312.pyc,,
authlib/oidc/core/grants/__pycache__/util.cpython-312.pyc,,
authlib/oidc/core/grants/code.py,sha256=GelmhPA0jj4zK-ucXL7fAwIPfnn5Znol6wJlsJeVx1A,5681
authlib/oidc/core/grants/hybrid.py,sha256=pIWRAGFbT9d9o4OHcPE-RtjJqOuTGbaFU0lsBG5kgAw,3430
authlib/oidc/core/grants/implicit.py,sha256=rSG0S2jrFzK1rE247DiRyabnpbGq4UE0S6nqJKrMzZo,6619
authlib/oidc/core/grants/util.py,sha256=prMt5LqyPLbsI6MQACkxOgmMK_WlS_C0I73jhJWETj4,4539
authlib/oidc/core/models.py,sha256=KjBcQnNJkVYnLWYeQuwb-K_DWDst78MZRLJXjqhtMtw,1464
authlib/oidc/core/userinfo.py,sha256=8r3WBd6H1JM_5IDW4l1zOkxqrWg_YTyGqDijShKxeLE,4354
authlib/oidc/core/util.py,sha256=ihuKYlhQAVmK5SIhwxn5k_PqVB1q0Lmwl1tuwRTQuf4,502
authlib/oidc/discovery/__init__.py,sha256=rapkktd4XN0t6LeHOWFPeeKEzlF6gBHvWsTK9JPLPY0,305
authlib/oidc/discovery/__pycache__/__init__.cpython-312.pyc,,
authlib/oidc/discovery/__pycache__/models.cpython-312.pyc,,
authlib/oidc/discovery/__pycache__/well_known.cpython-312.pyc,,
authlib/oidc/discovery/models.py,sha256=yzdWYQn-VfC48gywoxswge4tgnKb8uQ-UkjhVTClk1E,12442
authlib/oidc/discovery/well_known.py,sha256=ry1VHxCmwvjmlMxOFEbSC6FsE_ttijyRcn2xUpv2CaU,574
authlib/oidc/registration/__init__.py,sha256=lV_Og-DMFKzWWYsdK04oF83xKUGTE2gQhikPPsOdW84,77
authlib/oidc/registration/__pycache__/__init__.cpython-312.pyc,,
authlib/oidc/registration/__pycache__/claims.cpython-312.pyc,,
authlib/oidc/registration/claims.py,sha256=K7Ft8GDXkVrjJrc53Ihkhn2SVN4pvEf3qiHOkzVOJ7g,17264

View File

@@ -0,0 +1,6 @@
Wheel-Version: 1.0
Generator: setuptools (80.9.0)
Root-Is-Purelib: true
Tag: py2-none-any
Tag: py3-none-any

View File

@@ -0,0 +1,29 @@
BSD 3-Clause License
Copyright (c) 2017, Hsiaoming Yang
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.