API for managing stored OAuth credentials.
Project description
Python Library for storing OAuth credentials in many locations
What's this for?
By their very nature, OAuth credentials are valuable and dangerous, and have to be stored securely. As a result, the same tasks to store these tokens in a simple and secure fashion have to be written each time, or copied and pasted around - leading to potential issues as problems are found and not fixed in all places.
This library will store OAuth tokens in any of the following places:
- Secret Manager
- Firestore
- Google Cloud Storage files
- A local
json
file
Other storage locations can be added at will simply by forking this library and extending the appropriate abstract classes.
Initial Setup And Installation
Examples
Fetching a token from storage
from auth.credentials_helpers import encode_key
from auth.secret_manager import SecretManager
manager = SecretManager(project='<gcp project name>')
key = manager.get_document(encode_key('<token id>'))
Note the use of encode_key
. This is because many of the storage systems
supported do not allow special characters, and the most convenient identifier
for most OAuth tokens is the email address of the user. encode_key
is a
base64 encoder - and no decoding is necessary.
The example given uses Secret Manager (part of Google Cloud). To use (say) GCS, the code would change like this:
from auth.credentials_helpers import encode_key
from auth.gcs_datastore import GCSDatastore
manager = GCSDatastore(project='<gcp project name>', bucket='<gcs bucket>')
key = manager.get_document(encode_key('<token id>'))
All that changes is where the datastore is!
Storing a token in Secret Manager
from auth.secret_manager import SecretManager
manager = SecretManager(project='<gcp project name>')
manager.update_document(id=encode_key('<token_id>'), new_data=<token string>)
This will implicitly create a secret
if there was not one already, or simply
update an existing secret with a new 'live' version of the secret.
Listing all the available secrets
from auth.secret_manager import SecretManager
manager = SecretManager(project='<gcp project name>')
manager.list_documents()
Removing a secret
from auth.secret_manager import SecretManager
manager = SecretManager(project='<gcp project name>')
manager.delete_document(id=encode_key('<token_id>'))
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file python-oauth-token-manager-0.2.4.tar.gz
.
File metadata
- Download URL: python-oauth-token-manager-0.2.4.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a3a8bce2fd125f693bf57b952f4b00a62c1b1f77d566c794655dcbd810c4b42 |
|
MD5 | 040dc340c92148cc856a8c7b6ee3a749 |
|
BLAKE2b-256 | 0e7080404da49406c69088f11954f6951d5470d5498671203a90e9a231665c08 |
File details
Details for the file python_oauth_token_manager-0.2.4-py3-none-any.whl
.
File metadata
- Download URL: python_oauth_token_manager-0.2.4-py3-none-any.whl
- Upload date:
- Size: 26.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e63147895c2de67eb0530fca4366c66e22080193a24234afeee1dff4d763d29b |
|
MD5 | 38906d04813ec849ee679780a116ef16 |
|
BLAKE2b-256 | 3ef64a031712db97d5c3f3c3dcee1f654c6870376df05dd5d0959320953b6f7a |