Request authentication using existing credential helpers.
Project description
This Python library provides the HelperAuth
class whose objects are intended
to be used as custom authentication handlers in conjunction with
the Requests library, as suggested in its documentation.
Installation
pip install helper-auth
Usage
Suppose you have an existing GitHub personal access token, and a Git credential helper already set up for Git to authenticate to GitHub using this token as the password. This helper prints the following to standard output:
$ git credential-github
username=YOUR_GITHUB_USERNAME
password=YOUR_GITHUB_TOKEN
You want to use the same token to make GitHub API calls using the Requests
library. The API expects the field Authorization: Bearer YOUR_GITHUB_TOKEN
in
your request's headers.
You can use HelperAuth
with its default settings:
import requests
from helper_auth import HelperAuth
auth = HelperAuth("git credential-github")
response = requests.get("https://api.github.com/user", auth=auth)
Specifying the helper command
The helper command can be specified as one or more positional arguments:
auth = HelperAuth("helper")
auth = HelperAuth("helper", "--option", "arg")
As a shortcut, a command with command-line arguments can also be passed as single string (this form is used in the code snippet above):
auth = HelperAuth("helper --option arg")
In addition, the first positional argument can be a path-like object:
auth = HelperAuth(Path("helper"))
auth = HelperAuth(Path("helper"), "--option", "arg")
Caching the token
By default, a HelperAuth
object never stores the value of the token
in its internal state. Rather, the helper command is invoked
each time the auth object is called. This is an intentional precaution (such
that the token cannot be retrieved ex post by the introspection of the
auth object) but it can also be unnecessarily expensive in situations
where such precaution is not necessary and the auth object is to
be called repeatedly, e.g. when making many simultaneous API calls.
You can override this behavior by passing cache_token=True
to the
constructor:
auth = HelperAuth("helper", cache_token=True)
The cached token can then be cleared anytime by calling
auth.clear_cache()
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
File details
Details for the file helper_auth-0.8.0.tar.gz
.
File metadata
- Download URL: helper_auth-0.8.0.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.12.0 Linux/6.2.0-34-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9102de42fa9c8f953a9558a1d4c79c9e9e061f4a637a59e0ea9b3c919b9a395a |
|
MD5 | 4bc4e7e341e6faf0a68255b0b7a9ac1b |
|
BLAKE2b-256 | 1a430e5abc9c94a4baf7874be44a803d1d705b06fa9ce1321b71dd2ca7239930 |
File details
Details for the file helper_auth-0.8.0-py3-none-any.whl
.
File metadata
- Download URL: helper_auth-0.8.0-py3-none-any.whl
- Upload date:
- Size: 4.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.12.0 Linux/6.2.0-34-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc0faccf4d12f6946984bd935e84a2f5081ea1381e19e783d1e96c73b9ef56ec |
|
MD5 | 80068355ba5000e4d17d792337ccbe84 |
|
BLAKE2b-256 | 9222c99a5c9f1c891d988ee71c89d08de44e0600ef0a7b3c20b9779537422093 |