Skip to main content

OAuth support for Asyncio/Trio libraries

Project description

AIOAuth Client – OAuth support for Asyncio / Trio libraries.

Tests Status PYPI Version

Requirements

  • python >= 3.8

Installation

AIOAuth Client should be installed using pip:

pip install aioauth-client

Usage

# OAuth1
from aioauth_client import TwitterClient

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

request_token, request_token_secret, _ = 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, oauth_token_secret, _ = await twitter.get_access_token(oauth_verifier)

# 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)
# 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()

Example

Run example with command:

make example

Open http://localhost:5000 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.25.7.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

aioauth_client-0.25.7-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file aioauth-client-0.25.7.tar.gz.

File metadata

  • Download URL: aioauth-client-0.25.7.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for aioauth-client-0.25.7.tar.gz
Algorithm Hash digest
SHA256 24a4bbc4085a3ac424d661fc64494e4f38d07cd76a947e83995e1059f72a2dd2
MD5 747ee4f6fa4355f19a56fe0291cb74f1
BLAKE2b-256 893dbb3d1f8cc8bc56812281c2a4727aca4e5391c11ce5a28370f13bfa8d0053

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aioauth_client-0.25.7-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for aioauth_client-0.25.7-py3-none-any.whl
Algorithm Hash digest
SHA256 8d9f7e4556d7eb93ba8aa44e97934083d8a40bdcc11721472e9641d4b16f1739
MD5 068804c9fcb1101d6bf2e3495055cf8e
BLAKE2b-256 13bfeb0d9c59336152cb3ab7b9c416a3fcb9b1989137ebcfc24e5f291dbfbedd

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