Skip to main content

OAuth support for Asyncio/Trio libraries

Project description

AIOAuth Client – OAuth support for Asyncio / Trio libraries.

Tests Status PYPI Version Python Versions

Requirements

  • python >= 3.8

Installation

AIOAuth Client should be installed using pip:

pip install aioauth-client

Usage

# OAuth2
from aioauth_client import GithubClient

github = GithubClient(
    client_id='b6281b6fe88fa4c313e6',
    client_secret='21ff23d9f1cad775daee6a38d230e1ee05b04f7c',
)

authorize_url = github.get_authorize_url(scope="user:email")

# ...
# Reload client to authorize_url and get code
# ...

otoken, _ = await github.get_access_token(code)

# Save the token for later use

# ...

github = GithubClient(
    client_id='b6281b6fe88fa4c313e6',
    client_secret='21ff23d9f1cad775daee6a38d230e1ee05b04f7c',
    access_token=otoken,
)

# Or you can use this if you have initilized client already
# github.access_token = otoken

response = await github.request('GET', 'user')
user_info = await response.json()
# OAuth1
from aioauth_client import TwitterClient

twitter = TwitterClient(
    consumer_key='J8MoJG4bQ9gcmGh8H7XhMg',
    consumer_secret='7WAscbSy65GmiVOvMU5EBYn5z80fhQkcFWSLMJJu4',
)

request_token, _ = await twitter.get_request_token()

authorize_url = twitter.get_authorize_url(request_token)
print("Open",authorize_url,"in a browser")
# ...
# Reload client to authorize_url and get oauth_verifier
# ...
print("PIN code:")
oauth_verifier = input()
oauth_token, data = await twitter.get_access_token(oauth_verifier)
oauth_token_secret = data.get('oauth_token_secret')

# Save the tokens for later use

# ...

twitter = TwitterClient(
    consumer_key='J8MoJG4bQ9gcmGh8H7XhMg',
    consumer_secret='7WAscbSy65GmiVOvMU5EBYn5z80fhQkcFWSLMJJu4',
    oauth_token=oauth_token,
    oauth_token_secret=oauth_token_secret,
)

# Or you can use this if you have initilized client already
# twitter.access_token = oauth_token
# twitter.access_token_secret = oauth_token_secret

timeline = await twitter.request('GET', 'statuses/home_timeline.json')
content = await timeline.read()
print(content)

Example

Run example with command:

make example

Open http://localhost:8080 in your browser.

Bug tracker

If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/aioauth-client/issues

Contributing

Development of AIOAuth Client happens at: https://github.com/klen/aioauth-client

License

Licensed under a MIT license.

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

aioauth_client-0.28.1.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

aioauth_client-0.28.1-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file aioauth_client-0.28.1.tar.gz.

File metadata

  • Download URL: aioauth_client-0.28.1.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.10.6 Linux/5.15.0-1034-azure

File hashes

Hashes for aioauth_client-0.28.1.tar.gz
Algorithm Hash digest
SHA256 536f438cae7b7c3fbafddb3880c35aad5e5e52ab62205b0a0ed2a1dfbe80923b
MD5 e930e6e530a85265fce050df54b39358
BLAKE2b-256 259194faf3ce9269861a8b3d009dc65755b8011f4822d2ef790499223619e24c

See more details on using hashes here.

File details

Details for the file aioauth_client-0.28.1-py3-none-any.whl.

File metadata

  • Download URL: aioauth_client-0.28.1-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.10.6 Linux/5.15.0-1034-azure

File hashes

Hashes for aioauth_client-0.28.1-py3-none-any.whl
Algorithm Hash digest
SHA256 13b30d8bb63566ebfcd609a0c3988a688a41a2ebdb98cd68b7e100c97d762cd0
MD5 81f51655b37137744542bb8025f86c73
BLAKE2b-256 6c990c946aec7e389b50e0a8b1b64aca002ff818e6b56c7ca92135f0bf1e164e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page