Skip to main content

Validate and extract information from OAuth2 token.

Project description

Validate and extract information from OAuth2 token

pypi version Build status Coverage Code style: black Number of tests Number of downloads

Validating an OAuth2 token

import oauth2helper

headers = {"Authorization": "Bearer YOUR_OAUTH2_TOKEN"}
my_token = headers.get('Authorization')[7:]

# Will raise InvalidTokenError or InvalidKeyError in case validation failed
oauth2helper.validate(my_token, "https://provider_url/common/discovery/keys")

Extracting user from a OAuth2 token

import oauth2helper

headers = {"Authorization": "Bearer YOUR_OAUTH2_TOKEN"}
my_token = headers.get('Authorization')[7:]

json_header, json_body = oauth2helper.validate(my_token, "https://provider_url/common/discovery/keys")
username = oauth2helper.user_name(json_body)

Starlette

A Starlette AuthenticationMiddleware backend is available.

from starlette.applications import Starlette
from starlette.authentication import requires
from starlette.middleware import Middleware
from starlette.middleware.authentication import AuthenticationMiddleware
from oauth2helper.starlette import OAuth2IdTokenBackend, unauthorized


backend = OAuth2IdTokenBackend(
    identity_provider_url="https://identity_provider_url",
    # You can extract scopes per user and validate them on @requires decorator
    scopes_retrieval=lambda json_body: ["authenticated"],
)
app = Starlette(middleware=[Middleware(AuthenticationMiddleware, backend=backend, on_error=unauthorized)])

@app.route("/authenticated_endpoint")
@requires(scopes=["authenticated"])
def endpoint(request):
    pass  # Implement your own logic

How to install

  1. python 3.6+ must be installed
  2. Use pip to install module:
python -m pip install oauth2helper

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oauth2helper-3.4.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

oauth2helper-3.4.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file oauth2helper-3.4.0.tar.gz.

File metadata

  • Download URL: oauth2helper-3.4.0.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.1

File hashes

Hashes for oauth2helper-3.4.0.tar.gz
Algorithm Hash digest
SHA256 f5141fbe61a91abe0b5269bd9c0596be1a8a0983051fe91bb909f34540c6df63
MD5 d3f414778a177e047a94b591b3baf6d7
BLAKE2b-256 5e26fae8395ec1e2e6a2f11b3fcb62b1c256dab7e4105cc39b9f5c89b5b375ec

See more details on using hashes here.

File details

Details for the file oauth2helper-3.4.0-py3-none-any.whl.

File metadata

  • Download URL: oauth2helper-3.4.0-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.1

File hashes

Hashes for oauth2helper-3.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d2377d787048ef9cda96d8c8d21f6d811e1a125d38ad34e043250bb742a16991
MD5 8f74bce3b377635a8b4949bfe45b0039
BLAKE2b-256 130f0e7de0f8ba1df844cec353693f5389c7a536007b0bf3d2ff76be9a1bb2ff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page