JetStream Authentication MiddleWare
Project description
JSA Auth Middleware is a python package built for integrating with JetStream across multiple micro-services, with the aim of handling authentication and Single-Sign-On while ensuring API security.
Quick start
Configure AUTH_BASE_URL in project settings pointing to the Authentication server without trailing slash
Add jsa_auth_middleware.JSAMiddleware to your MIDDLEWARE configuration in settings.py to validate authentication of all incoming requests. Maintain the order and hierarchy of middlewares, with Django middlewares above JSAMiddleware.
MIDDLEWARE = [ ... 'jsa_auth_middleware.JSAMiddleware', ]
Setup JSAMiddleware configuration in settings.py:
JSA_AUTH_MIDDLEWARE_CONFIG = { 'IGNORE_URLS': ( '<<URL_TO_IGNORE>>', ), 'IGNORE_STARTSWITH_URLS': ( '<<URL_TO_IGNORE>>', ), 'AUTH_BASE_URL': '', # optional if variable isn't in `settings.py` }
To interact with the API:
from jsa_auth_middleware import JSAMiddleware jsa_auth = JSAMiddleware() # To get key # Pass baseb4 encoded string of '<username>:<password>' status_code, response_data = jsa_auth.get_key(token) # Sample response data """ data = { "token": "*****" } status_code = 200 returns status_code, data """ # To authenticate # Pass token key gotten from the get_key method status_code, response_data = jsa_auth.get_auth_token(token) # Sample response data """ data = { "token": "*****" } status_code = 200 returns status_code, data """
Import Query Response across application to define and process API response:
from jsa_auth_middleware.query_response import Response resp = Response() resp.failed() # on failure, using default failure status_code resp.message = '<<Some response message>>' resp.add_params('<<data_key>>', <<data_value>>) resp = Response() resp.passed() # on success, using default success status_code resp.message = '<<Some response message>>' resp.add_params('<<data_key>>', <<data_value>>) # Setting response status code resp.status_code = <<CustomStatusCode>>
NOTE
The IGNORE_STARTSWITH_URLS in JSA_AUTH_MIDDLEWARE_CONFIG has the following default pre-defined endpoints patterns to be ignored:
( "/admin/", "/swagger/", "/redoc/", )
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
Built Distribution
Hashes for jsa-auth-middleware-0.0.3.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39dec4f5664e4588735ee4ba1a9f020eea6efcf9b9f28ead305689cc13f0980b |
|
MD5 | 2262c753f26b0dde8df0d80edc031d61 |
|
BLAKE2b-256 | 2715813de0652f64b1a75192feca65f76c944fbc5303fa5939cf55ba3af991d3 |
Hashes for jsa_auth_middleware-0.0.3.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b75a308dbe40de53b3a20ed35744de3efa60a3d3b7124b22ede4be50ee51e54a |
|
MD5 | c45f2f658ab9caec8db10926f61c471c |
|
BLAKE2b-256 | 97d1cf02a08e8a00e46c0db22db57745b1413dc47e34697678d84e8fa7cd6e2a |