Skip to main content

Eve JWT authentication

Project description

https://img.shields.io/pypi/v/eve-auth-jwt.svg https://travis-ci.org/rs/eve-auth-jwt.svg?branch=master

An OAuth 2 JWT token validation module for Eve.

Installation

To install eve-auth-jwt, simply:

$ pip install eve-auth-jwt

At Eve initialization:

from eve import Eve
from eve_auth_jwt import JWTAuth

app = Eve(auth=JWTAuth, settings=SETTINGS)

Configuration

This module reads its configuration form Eve settings. Here is the list of new directives:

  • JWT_SECRET (required): Defines the symetric secret token secret used to de/encode the token (async keys support is a TODO).

  • JWT_ISSUER (required): Defines the required token issuer (iss claim).

  • JWT_AUDIENCES: Defines a list of accepted audiences (aud claim). If not provided, only tokens with no audience set will be accepted. The resource level audiences parameter is also available.

  • JWT_ROLES_CLAIM: Defines the claim name for roles. If set, Eve roles check will be activated, and any resources with allowed_roles set will require to have those roles present in the defined token’s claim.

  • JWT_SCOPE_CLAIM: Defines the claim name for scope. If set and the token has a claim of the same name containing the string viewer, only GET and HEAD methods will be granted. All other values are ignored and added to the list of exposed roles with the scope: prefix.

Reading Roles

If access is granted, the authentication module exposes roles and token’s claims thru get_authen_roles() and get_authen_claims() methods. You may access those values from your event hook as follow:

def my_hook(...)
    resource_def = app.config['DOMAIN'][resource_name]
    auth = resource_def['authentication']
    if 'somerole' in auth.get_authen_roles():
        # grant some finer access

Licenses

All source code is licensed under the MIT License.

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

eve-auth-jwt-1.0.3.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

eve_auth_jwt-1.0.3-py2.py3-none-any.whl (6.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file eve-auth-jwt-1.0.3.tar.gz.

File metadata

File hashes

Hashes for eve-auth-jwt-1.0.3.tar.gz
Algorithm Hash digest
SHA256 cdcc08582ce335dc2dabf8f50c0099ed678dca9b9eb7ee0a6ea27bb079d682dc
MD5 435479e2e28f0f62d5f78557ec147bf8
BLAKE2b-256 480fe0d558e3835b3fe4a024f1b50e5e65ce6d84ecfcfc3b525d4d4258120002

See more details on using hashes here.

File details

Details for the file eve_auth_jwt-1.0.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for eve_auth_jwt-1.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 aa23d0aa5bd3ddd7e9232ea1de68ea334b96fd4100b0c896ba20700b3a9e4e22
MD5 82f4eef54227afe1446ea7c8d335740a
BLAKE2b-256 4e495f41c2cb44e79e45da4bad25165fd3e1bcb71a76ecb097214f631b445a67

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 Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page