{"id":13396984,"url":"https://github.com/lepture/authlib","last_synced_at":"2025-04-22T05:45:08.047Z","repository":{"id":37896804,"uuid":"108510280","full_name":"lepture/authlib","owner":"lepture","description":"The ultimate Python library in building OAuth, OpenID Connect clients and servers. JWS,JWE,JWK,JWA,JWT included.","archived":false,"fork":false,"pushed_at":"2025-04-19T07:11:02.000Z","size":3325,"stargazers_count":4787,"open_issues_count":110,"forks_count":478,"subscribers_count":61,"default_branch":"main","last_synced_at":"2025-04-19T22:01:46.094Z","etag":null,"topics":["django","flask","jose","jwe","jwk","jws","jwt","oauth","oauth2","oauth2-provider","oauth2-server","oidc","openid-connect"],"latest_commit_sha":null,"homepage":"https://authlib.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lepture.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["lepture"],"patreon":"lepture","open_collective":null,"ko_fi":null,"tidelift":"pypi/Authlib","custom":"https://lepture.com/donate"}},"created_at":"2017-10-27T06:52:26.000Z","updated_at":"2025-04-19T07:11:06.000Z","dependencies_parsed_at":"2024-02-28T02:49:54.296Z","dependency_job_id":"f5f7241b-5c04-4a8f-87ff-1eb0a732e011","html_url":"https://github.com/lepture/authlib","commit_stats":{"total_commits":1301,"total_committers":125,"mean_commits":10.408,"dds":"0.14604150653343584","last_synced_commit":"fe12a578854fb64c8a3906676ba7d2a2b9579459"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lepture%2Fauthlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lepture%2Fauthlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lepture%2Fauthlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lepture%2Fauthlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lepture","download_url":"https://codeload.github.com/lepture/authlib/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249854548,"owners_count":21335129,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","flask","jose","jwe","jwk","jws","jwt","oauth","oauth2","oauth2-provider","oauth2-server","oidc","openid-connect"],"created_at":"2024-07-30T18:01:08.753Z","updated_at":"2025-04-22T05:45:08.022Z","avatar_url":"https://github.com/lepture.png","language":"Python","readme":"\u003ca href=\"https://authlib.org/\"\u003e\n\u003cimg align=\"right\" width=\"120\" height=\"120\" src=\"https://authlib.org/assets/logo.svg\"\u003e\n\u003c/a\u003e\n\n# Authlib\n\n\u003ca href=\"https://github.com/sponsors/lepture\"\u003e\u003cimg src=\"https://badgen.net/badge/support/authlib/ff69b4?icon=patreon\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/lepture/authlib/actions\"\u003e\u003cimg src=\"https://github.com/lepture/authlib/workflows/tests/badge.svg\" alt=\"Build Status\"\u003e\u003c/a\u003e\n\u003ca href=\"https://codecov.io/gh/lepture/authlib\" \u003e \u003cimg src=\"https://codecov.io/gh/lepture/authlib/graph/badge.svg?token=BQKzPoql9j\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://pypi.org/project/Authlib/\"\u003e\u003cimg src=\"https://badgen.net/pypi/v/authlib\" alt=\"PyPI Version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://codeclimate.com/github/lepture/authlib/maintainability\"\u003e\u003cimg src=\"https://badgen.net/codeclimate/maintainability/lepture/authlib?icon=codeclimate\" alt=\"Maintainability\" /\u003e\u003c/a\u003e\n\nThe ultimate Python library in building OAuth and OpenID Connect servers.\nJWS, JWK, JWA, JWT are included.\n\nAuthlib is compatible with Python3.9+.\n\n**[Migrating from `authlib.jose` to `joserfc`](https://jose.authlib.org/en/dev/migrations/authlib/)**\n\n## Sponsors\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg align=\"middle\" width=\"48\" src=\"https://avatars.githubusercontent.com/u/70178963?v=4\"\u003e\u003c/td\u003e\n\u003ctd\u003eIf you want to quickly add secure token-based authentication to Python projects, feel free to check Auth0's Python SDK and free plan at \u003ca href=\"https://auth0.com/overview?utm_source=GHsponsor\u0026utm_medium=GHsponsor\u0026utm_campaign=authlib\u0026utm_content=auth\"\u003eauth0.com/overview\u003c/a\u003e.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cimg align=\"middle\" width=\"48\" src=\"https://typlog.com/assets/icon-white.svg\"\u003e\u003c/td\u003e\n\u003ctd\u003eA blogging and podcast hosting platform with minimal design but powerful features. Host your blog and Podcast with \u003ca href=\"https://typlog.com/\"\u003eTyplog.com\u003c/a\u003e.\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n[**Fund Authlib to access additional features**](https://docs.authlib.org/en/latest/community/funding.html)\n\n## Features\n\nGeneric, spec-compliant implementation to build clients and providers:\n\n- [The OAuth 1.0 Protocol](https://docs.authlib.org/en/latest/basic/oauth1.html)\n  - [RFC5849: The OAuth 1.0 Protocol](https://docs.authlib.org/en/latest/specs/rfc5849.html)\n- [The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/latest/basic/oauth2.html)\n  - [RFC6749: The OAuth 2.0 Authorization Framework](https://docs.authlib.org/en/latest/specs/rfc6749.html)\n  - [RFC6750: The OAuth 2.0 Authorization Framework: Bearer Token Usage](https://docs.authlib.org/en/latest/specs/rfc6750.html)\n  - [RFC7009: OAuth 2.0 Token Revocation](https://docs.authlib.org/en/latest/specs/rfc7009.html)\n  - [RFC7523: JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants](https://docs.authlib.org/en/latest/specs/rfc7523.html)\n  - [RFC7591: OAuth 2.0 Dynamic Client Registration Protocol](https://docs.authlib.org/en/latest/specs/rfc7591.html)\n  - [RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol](https://docs.authlib.org/en/latest/specs/rfc7592.html)\n  - [RFC7636: Proof Key for Code Exchange by OAuth Public Clients](https://docs.authlib.org/en/latest/specs/rfc7636.html)\n  - [RFC7662: OAuth 2.0 Token Introspection](https://docs.authlib.org/en/latest/specs/rfc7662.html)\n  - [RFC8414: OAuth 2.0 Authorization Server Metadata](https://docs.authlib.org/en/latest/specs/rfc8414.html)\n  - [RFC8628: OAuth 2.0 Device Authorization Grant](https://docs.authlib.org/en/latest/specs/rfc8628.html)\n  - [RFC9068: JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens](https://docs.authlib.org/en/latest/specs/rfc9068.html)\n  - [RFC9207: OAuth 2.0 Authorization Server Issuer Identification](https://docs.authlib.org/en/latest/specs/rfc9207.html)\n- [Javascript Object Signing and Encryption](https://docs.authlib.org/en/latest/jose/index.html)\n  - [RFC7515: JSON Web Signature](https://docs.authlib.org/en/latest/jose/jws.html)\n  - [RFC7516: JSON Web Encryption](https://docs.authlib.org/en/latest/jose/jwe.html)\n  - [RFC7517: JSON Web Key](https://docs.authlib.org/en/latest/jose/jwk.html)\n  - [RFC7518: JSON Web Algorithms](https://docs.authlib.org/en/latest/specs/rfc7518.html)\n  - [RFC7519: JSON Web Token](https://docs.authlib.org/en/latest/jose/jwt.html)\n  - [RFC7638: JSON Web Key (JWK) Thumbprint](https://docs.authlib.org/en/latest/specs/rfc7638.html)\n  - [ ] RFC7797: JSON Web Signature (JWS) Unencoded Payload Option\n  - [RFC8037: ECDH in JWS and JWE](https://docs.authlib.org/en/latest/specs/rfc8037.html)\n  - [ ] draft-madden-jose-ecdh-1pu-04: Public Key Authenticated Encryption for JOSE: ECDH-1PU\n- [OpenID Connect 1.0](https://docs.authlib.org/en/latest/specs/oidc.html)\n  - [x] OpenID Connect Core 1.0\n  - [x] OpenID Connect Discovery 1.0\n  - [x] OpenID Connect Dynamic Client Registration 1.0\n\nConnect third party OAuth providers with Authlib built-in client integrations:\n\n- Requests\n  - [OAuth1Session](https://docs.authlib.org/en/latest/client/requests.html#requests-oauth-1-0)\n  - [OAuth2Session](https://docs.authlib.org/en/latest/client/requests.html#requests-oauth-2-0)\n  - [OpenID Connect](https://docs.authlib.org/en/latest/client/requests.html#requests-openid-connect)\n  - [AssertionSession](https://docs.authlib.org/en/latest/client/requests.html#requests-service-account)\n- HTTPX\n  - [AsyncOAuth1Client](https://docs.authlib.org/en/latest/client/httpx.html#httpx-oauth-1-0)\n  - [AsyncOAuth2Client](https://docs.authlib.org/en/latest/client/httpx.html#httpx-oauth-2-0)\n  - [OpenID Connect](https://docs.authlib.org/en/latest/client/httpx.html#httpx-oauth-2-0)\n  - [AsyncAssertionClient](https://docs.authlib.org/en/latest/client/httpx.html#async-service-account)\n- [Flask OAuth Client](https://docs.authlib.org/en/latest/client/flask.html)\n- [Django OAuth Client](https://docs.authlib.org/en/latest/client/django.html)\n- [Starlette OAuth Client](https://docs.authlib.org/en/latest/client/starlette.html)\n- [FastAPI OAuth Client](https://docs.authlib.org/en/latest/client/fastapi.html)\n\nBuild your own OAuth 1.0, OAuth 2.0, and OpenID Connect providers:\n\n- Flask\n  - [Flask OAuth 1.0 Provider](https://docs.authlib.org/en/latest/flask/1/)\n  - [Flask OAuth 2.0 Provider](https://docs.authlib.org/en/latest/flask/2/)\n  - [Flask OpenID Connect 1.0 Provider](https://docs.authlib.org/en/latest/flask/2/openid-connect.html)\n- Django\n  - [Django OAuth 1.0 Provider](https://docs.authlib.org/en/latest/django/1/)\n  - [Django OAuth 2.0 Provider](https://docs.authlib.org/en/latest/django/2/)\n  - [Django OpenID Connect 1.0 Provider](https://docs.authlib.org/en/latest/django/2/openid-connect.html)\n\n## Useful Links\n\n1. Homepage: \u003chttps://authlib.org/\u003e.\n2. Documentation: \u003chttps://docs.authlib.org/\u003e.\n3. Purchase Commercial License: \u003chttps://authlib.org/plans\u003e.\n4. Blog: \u003chttps://blog.authlib.org/\u003e.\n5. Twitter: \u003chttps://twitter.com/authlib\u003e.\n6. StackOverflow: \u003chttps://stackoverflow.com/questions/tagged/authlib\u003e.\n7. Other Repositories: \u003chttps://github.com/authlib\u003e.\n8. Subscribe Tidelift: [https://tidelift.com/subscription/pkg/pypi-authlib](https://tidelift.com/subscription/pkg/pypi-authlib?utm_source=pypi-authlib\u0026utm_medium=referral\u0026utm_campaign=links).\n\n## Security Reporting\n\nIf you found security bugs, please do not send a public issue or patch.\nYou can send me email at \u003cme@lepture.com\u003e. Attachment with patch is welcome.\nMy PGP Key fingerprint is:\n\n```\n72F8 E895 A70C EBDF 4F2A DFE0 7E55 E3E0 118B 2B4C\n```\n\nOr, you can use the [Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure.\n\n## License\n\nAuthlib offers two licenses:\n\n1. BSD (LICENSE)\n2. COMMERCIAL-LICENSE\n\nCompanies can purchase a commercial license at\n[Authlib Plans](https://authlib.org/plans).\n\n**If your company is creating a closed source OAuth provider, it is strongly\nsuggested that your company purchasing a commercial license.**\n\n## Support\n\nIf you need any help, you can always ask questions on StackOverflow with\na tag of \"Authlib\". DO NOT ASK HELP IN GITHUB ISSUES.\n\nWe also provide commercial consulting and supports. You can find more\ninformation at \u003chttps://authlib.org/support\u003e.\n","funding_links":["https://github.com/sponsors/lepture","https://patreon.com/lepture","https://tidelift.com/funding/github/pypi/Authlib","https://lepture.com/donate","https://tidelift.com/subscription/pkg/pypi-authlib","https://tidelift.com/subscription/pkg/pypi-authlib?utm_source=pypi-authlib\u0026utm_medium=referral\u0026utm_campaign=links","https://tidelift.com/security"],"categories":["Authentication","Python","Uncategorized","资源列表","Authorization","身份验证","Authentication \u0026 Authorization","验证","Authorization \u0026 Authentication","Authentication [🔝](#readme)","Client Library"],"sub_categories":["Uncategorized","验证","OAuth","Drone Frames","Python"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flepture%2Fauthlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flepture%2Fauthlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flepture%2Fauthlib/lists"}