Authenticate against OAuth2 Provider in Python CLIs
- Simple
- Fancy callback page
- Python 3.9+
pip install oauth2-cli-auth
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")
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")
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.
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.
- Python 3.9+
- pre-commit
- Poetry
poetry run pytest .
poetry install