$ pip install mbq.client
- ServiceClient wraps python's requests library to enable token based service to service authentication
- Authenticator provides Auth0 token based authentication
- TokenManager A manager that stores refreshable tokens with support for different persistent storage backends.
DjangoCacheStorage is a thin wrapper that stores token in your django project's cache.
from django.core.cache import cache
from mbq.client import ServiceClient, Authenticator, TokenManager, DjangoCacheStorage
token_manager = TokenManager(
settings={
'api_ids': {'my_service': 'id'},
'client_id': 'client_id',
'client_secret': 'your_secret'
'domain': 'auth0domain'
},
storage=DjangoCacheStorage(cache),
)
my_service_client = ServiceClient(
auth=Authenticator(
service_name='my_service',
token_manager=token_manager
)
)
my_service_client.get()
my_service_client.post()
my_service_client.patch()
my_service_client.put()
my_service_client.delete()
access_token.refresh()
access_token() #retrieves token
OSCore = ServiceClient(
settings.OS_CORE_API_URL,
auth=Authenticator(
service_name="os-core",
token_manager=token_manager
),
)
from mbq.client.contrib import permissions
permissions_client = permissions.PermissionsClient(
permissions.OSCoreServiceClient(OSCore),
cache_period_seconds=0
)
# query for a user's permission at company 15
permissions_client.has_permission(person_id, "read:messages", 15, "company") # returns True if person_id has that permission
You can find additional information in the permissions documentation for developers here