Skip to main content

JSON Web Token authenticator backend for Starlette's authentication system.

Project description

StarJWT

Basic JWT authentication integration for Starlette. All it does is validate and sign JWTs and set their contents on the request's auth and user attributes. See the Starlette documentation for more details.

Usage

Create a JWTBackend instance and install Starlette's AuthenticationMiddleware using it. Then in your login and logout routes, wrap your responses in backend.set_login_cookie(repsonse, sub) and backend.logout(response). For a general guide to Starlette's authentication system see the here.

By default, the user is a SimpleUser with username set to the sub value of the JWT, and the scopes are empty. To change this behaviour, you can subclass JWTBackend and override the get_user method to, for example, get the user in the database.

Example

from starlette.applications import Starlette
from starlette.middleware.authentication import AuthenticationMiddleware
from starlette.responses import PlainTextResponse
from starlette_jwt import JWTBackend

app = Starlette()
backend = JWTBackend(...)
app.add_middleware(AuthenticationMiddleware, backend=backend)

@app.route("/login")
async def login():
    # do login
    return backend.set_login_cookie(PlainTextResponse("ok"), "username")

@app.route("/logout")
async def logout():
    # do logout
    return backend.logout(PlainTextResponse("ok"))

Requirements

Starlette JWT requires Starlette, PyJWT and Python 3.8 or higher (why?).

License

Starlette JWT is licensed under the AGPL 3.0.

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

star_jwt-0.4.0.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

star_jwt-0.4.0-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file star_jwt-0.4.0.tar.gz.

File metadata

  • Download URL: star_jwt-0.4.0.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for star_jwt-0.4.0.tar.gz
Algorithm Hash digest
SHA256 bac319d75eacd08f5b2f304e7e0c6f5d78948047bdb16652e5c021de4d293054
MD5 9b8632b388b4fc62c04da058fa14566e
BLAKE2b-256 3f34a60907d7f7d8804470af9df7a8570518be039a9e7737913e1d2b6f5ea53f

See more details on using hashes here.

File details

Details for the file star_jwt-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: star_jwt-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for star_jwt-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 98d9bfb1a1d69c572272e1cfc780845c659c8cf288abf2455903274f5031c8a4
MD5 530588ed0bddaaaee87ab0e951189741
BLAKE2b-256 c2c4147248a3750ceddbb672efe6478161cf067d6ff3ac16a980dfbdf534c74d

See more details on using hashes here.

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