single |
OAuthLib - Python Framework for OAuth1 & OAuth2
===============================================
*A generic, spec-compliant, thorough implementation of the OAuth
request-signing
logic for Python 3.8+*
:alt: GitHub Actions
:alt: Coveralls
:alt: Download from PyPI
:alt: License
:alt: FOSSA Status
:alt: Read the Docs
:alt: Chat on Gitter
:alt: OAuth + Python = OAuthlib Python Framework
OAuth often seems complicated and difficult-to-implement. There are several
prominent libraries for handling OAuth requests, but they all suffer from
one or
both of the following:
1. They predate the `OAuth 1.0 spec`_, AKA RFC 5849.
2. They predate the `OAuth 2.0 spec`_, AKA RFC 6749.
3. They assume the usage of a specific HTTP request library.
.. _`OAuth 1.0 spec`: https://tools.ietf.org/html/rfc5849
.. _`OAuth 2.0 spec`: https://tools.ietf.org/html/rfc6749
OAuthLib is a framework which implements the logic of OAuth1 or OAuth2
without
assuming a specific HTTP request object or web framework. Use it to graft
OAuth
client support onto your favorite HTTP library, or provide support onto
your
favourite web framework. If you're a maintainer of such a library, write a
thin
veneer on top of OAuthLib and get OAuth support for very little effort.
Documentation
--------------
Full documentation is available on `Read the Docs`_. All contributions are
very
welcome! The documentation is still quite sparse, please open an issue for
what
you'd like to know, or discuss it in our `Gitter community`_, or even
better, send a
pull request!
.. _`Gitter community`: https://gitter.im/oauthlib/Lobby
.. _`Read the Docs`: https://oauthlib.readthedocs.io/en/latest/index.html
Interested in making OAuth requests?
------------------------------------
Then you might be more interested in using `requests`_ which has OAuthLib
powered OAuth support provided by the `requests-oauthlib`_ library.
.. _`requests`: https://github.com/requests/requests
.. _`requests-oauthlib`: https://github.com/requests/requests-oauthlib
Which web frameworks are supported?
-----------------------------------
The following packages provide OAuth support using OAuthLib.
- For Django there is:
- `django-oauth-toolkit`_, which includes `Django REST framework`_
support.
- `django-allauth`_, which includes `Django REST framework`_ as well as
`Django Ninja`_ support.
- For Flask there is `flask-oauthlib`_ and `Flask-Dance`_.
- For Pyramid there is `pyramid-oauthlib`_.
- For Bottle there is `bottle-oauthlib`_.
If you have written an OAuthLib package that supports your favorite
framework,
please open a Pull Request, updating the documentation.
.. _`django-oauth-toolkit`: https://github.com/evonove/django-oauth-toolkit
.. _`flask-oauthlib`: https://github.com/lepture/flask-oauthlib
.. _`Django REST framework`: http://django-rest-framework.org
.. _`Flask-Dance`: https://github.com/singingwolfboy/flask-dance
.. _`pyramid-oauthlib`: https://github.com/tilgovi/pyramid-oauthlib
.. _`bottle-oauthlib`: https://github.com/thomsonreuters/bottle-oauthlib
.. _`django-allauth`: https://allauth.org/
.. _`Django Ninja`: https://django-ninja.dev/
Using OAuthLib? Please get in touch!
------------------------------------
Patching OAuth support onto an http request framework? Creating an OAuth
provider extension for a web framework? Simply using OAuthLib to Get Things
Done
or to learn?
No matter which we'd love to hear from you in our `Gitter community`_ or if
you have
anything in particular you would like to have, change or comment on don't
hesitate for a second to send a pull request or open an issue. We might be
|