RNet OAuth Python client library
Project description
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 RNetAuth, RNetAi
auth = RNetAuth(
client_id='client-id',
client_secret='client-secret',
redirect_uri='redirect-uri'
)
ai = RNetAi()
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, "gemini-2.5-flash-lite")
6. Streaming AI Response
for chunk in ai.chat_stream({
"contents": [
{
"role": "user",
"parts": [{"text": "Hello!"}]
}
]
}, access_token, "gemini-2.5-flash-lite"):
print(chunk)
License
MIT
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 Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rnet_oauth-1.0.0-py3-none-any.whl.
File metadata
- Download URL: rnet_oauth-1.0.0-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44bfccb50754235f880abef2bc31e550435e06852a8804e3371f5c981ede494b
|
|
| MD5 |
b8e5c856ecb66ee2e0ca44e3008e1ec1
|
|
| BLAKE2b-256 |
1488fed7da337a7fbf3579152ec30d91f799db28e31fd948e8a51fbc4328d02e
|