Skip to main content

RNet OAuth Python Library

A Python backend library for integrating RNet OAuth and AI Provider services. This library allows users to authenticate via RNet and pay for AI model token costs directly using their RNet account.

Features

  • OAuth2 PKCE Support: Secure authorization code flow with automatic code verifier and challenge generation.
  • Token Management: Exchange authorization codes for tokens and refresh expired tokens.
  • UserInfo Endpoint: Fetch the authenticated user's RNet profile with an access token.
  • AI Integration: Easy methods to chat with AI models using standard or streaming responses.

Installation

pip install rnet-oauth

Quick Start

1. Initialize the Clients

from rnet_oauth import RNetOAuthClient, ModelClient

auth = RNetOAuthClient(
    client_id='client-id',
    client_secret='client-secret',
    redirect_uri='redirect-uri'
)
ai = ModelClient("gemini-2.5-flash-lite")

2. Generate Authorization URL (OAuth2 PKCE)

# 1. Generate PKCE
pkce = auth.generate_pkce()
verifier = pkce['verifier']
challenge = pkce['challenge']

# 2. Get Authorization URL
# challenge: PKCE code challenge (optional)
# state: An optional string to maintain state between the request and callback (recommended for security)
auth_url = auth.get_authorization_url(challenge, state='optional-state')

3. Exchange Code for Tokens

# 3. Exchange code for tokens
tokens = auth.exchange_code_for_token(code, verifier)
access_token = tokens['access_token']

4. Get User Info

user_info = auth.get_user_info(access_token)
print(user_info['email'])
print(user_info['name'])

The UserInfo response comes from RNet's /userinfo endpoint and may include: sub, email, email_verified, name, preferred_username, user_id, role, and status.

5. Chat with AI

response = ai.chat({
    "contents": [
        {
            "role": "user",
            "parts": [{"text": "Hello!"}]
        }
    ]
}, access_token)

6. Streaming AI Response

for chunk in ai.chat_stream({
    "contents": [
        {
            "role": "user",
            "parts": [{"text": "Hello!"}]
        }
    ]
}, access_token):
    print(chunk)

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rnet_oauth-1.0.3.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rnet_oauth-1.0.3-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file rnet_oauth-1.0.3.tar.gz.

File metadata

  • Download URL: rnet_oauth-1.0.3.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for rnet_oauth-1.0.3.tar.gz
Algorithm Hash digest
SHA256 73a593e43e5aa2a901e97877164638e5d410bba304a5a28fb4ad95a6845ba2ee
MD5 da89034379d83108f27e86b60c20cbbd
BLAKE2b-256 929e0745d6db65413b55a6bdd4abb3029766a1cbf9847ed38f1d7e51b85b8adf

See more details on using hashes here.

File details

Details for the file rnet_oauth-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: rnet_oauth-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for rnet_oauth-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5a1fb863de38a171b523584ca38526c257d429f96b351816da417f5119d8b9f3
MD5 499379786b9dd43ea2d4185dac0c4d78
BLAKE2b-256 9a04d10835baf0b9651ccd1c2706ede3666c28c68faf97c256886591803b199f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page