Skip to main content

Tokko Auth2 flavor.

Project description

Authorization

ToC

Install

Install DjangoPlugin Package

pip install -e git@github.com:TokkoLabs/authorization.git

Import & Configure dj-plugin

your-project/settings.py

# Add app to installed apps
INSTALLED_APPS = [
    'tokko-auth'
]

# Also add declare app's middleware
MIDDLEWARE = [
    # Has request JWT?
    "tokko-auth.middleware.HasJWTMiddleware",
    # JWT has required NAMESPACE?
    "tokko-auth.middleware.NamespaceAuthorizationMiddleware",
    # Fill "request.user" attribute
    "tokko-auth.middleware.UserRecoverMiddleware",
]

# Finally, declare your AUTH0_DOMAIN
AUTH0_DOMAIN = 'my-auth-sub-dns.auth0.com'

Usage

API required NAMESPACE

your-project/settings.py

# API required NAMESPACE
AUTH_API_NAMESPACE = 'my-service-namespace'

View & Mutation required SCOPES

Resticciones de acceso basado en scopes para la view some_ufo_secrets.

from authorization.decorators import has_permission

# Require todos los scopes
@has_permission('x-files:agent', 'alien:believer', has_all=True)
def some_ufo_secrets(request):
    ...

# Al menos un scope
@has_permission('scully:agent', 'mulder:agent', at_least_one=True)
def some_ufo_secrets(request):
    ...

Settings

Environment Vars

Esta aplicación observa un conjunto de variables de entorno configurables, las cuales pueden modificar drásticamente su funcionamiento.

Required

Name Description Type Default
AUTH0_DOMAIN Auth0 Domain. Ej: {my-project}.auth.com. Si esta variable no esta correctamente configurada, se emitirá un exception EnvVarNotInitialized String -

Optional

Name Description Type Default
AUTH_FAIL_SAFE_ENABLE Remueve errores de validación Boolean False
AUTH_USERINFO_ENABLE Agrega /userinfo data al request.user Boolean False
AUTH_API_NAMESPACE Scopes requeridos a nivel API, estos se validaran en cada request List [ ]
AUTH_BEAUTIFY_ERROR_RESPONSE Formatea los errors a JSONResponse, se auto-deshabilita sobre GQL Boolean False
AUTH_FULL_DISABLED Desactiva validacion de Auth Boolean False
AUTH_ALLOW_PRODUCTIVE_SHUTDOWN Permite desactivar la validacion de Auth en productivo Boolean False
SAMPLES_ARE_ENABLE Agrega Views, Mutation & Queries de ejemplo Boolean True

Testing

Local environment

Unit Test

python manage.py test authorization.tests.unit

Service Test

python manage.py test authorization.tests.service

Docker environment

Unit Test

# Require: docker-compose up [-d] [--build]
docker-compose exec app bash -c "python manage.py test authorization.tests.unit"

Service Test

# Require: docker-compose up [-d] [--build]
docker-compose exec app bash -c "python manage.py test authorization.tests.service"

Glossary

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to project.

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

django-tokko-auth-0.0.2.tar.gz (12.6 kB view hashes)

Uploaded Source

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