Skip to main content

oauth2-cli-auth

LICENSE CircleCI GitHub Release PyPI version PyPI - Downloads codecov Quality Gate Status Code Smells Maintainability Rating Security Rating Renovate pre-commit


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

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)

Source distribution for oauth2-cli-auth 2.0.0
File Size Uploaded
oauth2_cli_auth-2.0.0.tar.gz 12.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for oauth2-cli-auth 2.0.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page