Skip to main content

Pre-alpha, do not use. Provides Flask with *very basic* JavaScript Web Tokens

Project description

Flask JWT Trivial

Pre-alpha, do not use! Use Flask JWT Extended instead.

About

Only bearer tokens are supported, no other methods.

The only valid algorithms for create_access_token() are HS256, HS384, or HS512. The default is HS256.

Installation

Install into a virtual environment:

virtualenv --python python3 venv
source venv/bin/activate
pip install flask-jwt-trivial

Example usage

First, generate a token and send it to the user. For them to access private routes, they must present that token as a bearer token, using the Authorization header, which will look something like this:

Authorization: Bearer <token-here>

Simple example follows. Note, it is up to you to manage the tokens, revoking them, checking expiry, etc.

from flask import Flask, jsonify, abort
from flask_jwt_trivial import Flask_JWT_Trivial


app = Flask(__name__)

# Don't actually put this in your source code.
# Maybe read it from an environment variable.
passphrase = "VERY-SECRET-PASSPHRASE"

# Initialise your Flask app like so:
flask_jwt_trivial = Flask_JWT_Trivial()
flask_jwt_trivial.init_app(
    app,
    passphrase=passphrase
)

@app.route("/private")
@flask_jwt_trivial.jwt_required
def private():
    return "Your token worked."

def authorised_to_receive_a_token():
    # Put your logic here, e.g. check the Flask
    # request and look up details in a database.
    if ok:
        return True
    else:
        return False

@app.route("/get_token")
def get_token():
    if not authorised_to_receive_a_token():
        abort(401) # Unauthorized

    token = flask_jwt_trivial.create_access_token()

    return jsonify(
        "data": {
            "type": "tokens",
            "attributes": {
                "token": token,
                "category": "Bearer",
            }
        }
    )

Options for flask_jwt_trivial.init_app() are:

  • app: Compulsory first arg, the Flask app.
  • algorithm: Optional. String. Algorithm used to encode/decode. Defaults to "HS256".
  • algorithms: Optional. List. Valid algorithms. Defaults to ["HS256","HS384","HS512"].
  • audience: Optional. String. JWT aud parameter.
  • issuer: Optional. String. JWT iss parameter, e.g. your organisation.
  • retfunc: Optional. A function that will be called on return. Useful if you want to capture the returned data and do something with it first.

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

flask_jwt_trivial-0.0.3.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

flask_jwt_trivial-0.0.3-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file flask_jwt_trivial-0.0.3.tar.gz.

File metadata

  • Download URL: flask_jwt_trivial-0.0.3.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.6.9

File hashes

Hashes for flask_jwt_trivial-0.0.3.tar.gz
Algorithm Hash digest
SHA256 8fb98bc671f004ddb1ebecb98f10034ee2c440d100066c09916fa4cf502e4532
MD5 f5f2d95eda503fd116fbc9151295da6b
BLAKE2b-256 190a056525261dddd8daafbcf51f68285844f7d08619bbd06201fe07e3f989cd

See more details on using hashes here.

File details

Details for the file flask_jwt_trivial-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: flask_jwt_trivial-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.6.9

File hashes

Hashes for flask_jwt_trivial-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7b603acee8954a4361603e2bf9e339756252ada79ca9488626431b63e9004c74
MD5 8a918d9b6f7266f86f7c72a0bb5ee266
BLAKE2b-256 5ad8f4f73156f5bd28b88996ec22ffe943b4024612766421618221cc684954e9

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