oauth2-cli-auth
Authenticate against OAuth2 Provider in Python CLIs
Features
- Simple
- Fancy callback page
Requirements
- Python 3.9+
Installation
pip install oauth2-cli-auth
Usage
Simple with OIDC well known configuration endpoint
This should work for every provider supporting OIDC e.g. gitlab.com:
from oauth2_cli_auth import get_access_token_with_browser_open, OAuth2ClientInfo
client_info = OAuth2ClientInfo.from_oidc_endpoint(
"https://gitlab.com/.well-known/openid-configuration",
client_id="my-client-id",
scopes=["openid"]
)
try:
token = get_access_token_with_browser_open(client_info)
print(f"Obtained token '{token}'")
except ValueError:
print("Failed to obtain token")
Simple with manual endpoint specification
The following should work for almost all use cases, for rest please check the lib docs.
from oauth2_cli_auth import get_access_token_with_browser_open, OAuth2ClientInfo
client_info = OAuth2ClientInfo(
client_id="<clientId>",
authorization_url="<authorizeUrl>",
token_url="<TokenUrl>",
scopes=["scopeA", "scopeB"]
)
try:
token = get_access_token_with_browser_open(client_info)
print(f"Obtained token '{token}'")
except ValueError:
print("Failed to obtain token")
Motivation
Building oauth2 integration for Python apps come quite handy, especially with Gitlab integration etc.
It is a bit cumbersome to do it manually everytime, existing solutions are way to overkill to put on this problem. So I created this small library without any dependencies besides the python standard library.
Documentation
Contributing
I love your input! I want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the configuration
- Submitting a fix
- Proposing new features
- Becoming a maintainer
To get started please read the Contribution Guidelines.
Development
Requirements
- Python 3.9+
- pre-commit
- Poetry
Test
poetry run pytest .
Build
poetry install
Metadata
Release files for oauth2-cli-auth 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| oauth2_cli_auth-2.0.0.tar.gz | 12.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| oauth2_cli_auth-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.7 kB
Release files / oauth2_cli_auth-2.0.0.tar.gz
| Download URL | oauth2_cli_auth-2.0.0.tar.gz |
|---|---|
| Size | 12.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b28d089fb7323875579fef9d96334d2f59e32c5c06a3251e858779c2e18f442e
|
|
BLAKE2b-256 checksum How to use checksums |
72eaae3c7e7d9ea244d181e0044b911f76d6df997cd28e3723ea55d00f723df7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.12.11 Linux/6.8.0-1029-aws
|
Release files / oauth2_cli_auth-2.0.0-py3-none-any.whl
| Download URL | oauth2_cli_auth-2.0.0-py3-none-any.whl |
|---|---|
| Size | 12.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
086bcc9a88aa03c3bc2dc9ffc98c02b6b623dbf613e82e2dc93712c6a16e1e12
|
|
BLAKE2b-256 checksum How to use checksums |
67b2bc8cf6f368e4a1b8fe7550532d834df48b3ef39c4fc7b9b831a0e8e5c631
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.3 CPython/3.12.11 Linux/6.8.0-1029-aws
|