Skip to main content

Starlette middleware for hmac access key

Project description

starlette-hmac

HMAC Middleware for the pythonic Starlette API framework

Installation

$ pip install starlette-hmac

Usage

This will verify that the request will be done with an authorization header with value HMAC <hmac hash of body>

import os
from starlette.applications import Starlette
from starlette_hmac.middleware import HMACMiddleware

shared_secret = os.environ.get("SHARED_SECRET")

app = Starlette()
app.add_middleware(HMACMiddleware, shared_secret=shared_secret)

Advanced usage

To customize header name or value of you can pass the needed parameters to the middleware. This example verifies that the request was done with an x-hub-signature header with value sha256=<hash>

import os
import hashlib
from starlette.applications import Starlette
from starlette_hmac.middleware import HMACMiddleware

shared_secret = os.environ.get("SHARED_SECRET")

app = Starlette()
app.add_middleware(HMACMiddleware, 
                   shared_secret=shared_secret, 
                   header_field="x-hub-signature", 
                   digestmod=hashlib.sha256, 
                   header_format="sha256={}"
)

Develop

This project uses poetry to manage its development environment, and pytest as its test runner. To install development dependencies:

$ poetry install

To run the tests:

$ poetry shell
$ pytest

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

starlette_hmac-0.0.4.tar.gz (2.7 kB view hashes)

Uploaded Source

Built Distribution

starlette_hmac-0.0.4-py3-none-any.whl (3.5 kB view hashes)

Uploaded Python 3

Supported by

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