Skip to main content

AuthGuard Python SDK - Secure authentication client with NaCl encryption

Project description

AuthGuard Python SDK

Python SDK for the AuthGuard v2 API with NaCl box encryption.

Features

  • Full v2 API support with encrypted request/response bodies
  • NaCl box encryption (Curve25519 + XSalsa20-Poly1305)
  • DPoP (Proof-of-Possession) token support
  • Automatic token refresh
  • Device registration and session management
  • Optional SDK secret authentication (for developer apps)
  • Anti-debug report endpoints

Installation

pip install authguard-py

Or install from source:

pip install -r requirements.txt

Quick Start

from authguard import AuthGuardClient

# Initialize client
client = AuthGuardClient(
    app_id="your-app-id",
    # Optional: for apps with SDK secret enabled
    owner_id="developer-user-id",
    sdk_secret="your-sdk-secret"
)

# Initialize session and device
client.init_session()
client.ensure_device()

# Login
result = client.login("username", "password")
if result.ok:
    print("Logged in!")
    print(f"User: {result.data.get('username')}")

# Or use license key
result = client.license("XXXX-XXXX-XXXX-XXXX")

# Check session validity
result = client.check()

# Get app variable
result = client.get_var("my_variable")

# Send heartbeat
result = client.heartbeat()

# Log event
client.log("user_action", {"detail": "something happened"})

Configuration Options

client = AuthGuardClient(
    app_id="your-app-id",
    host="api.evora.lol",       # API host (default: api.evora.lol)
    port=443,                    # API port (default: 443)
    use_https=True,              # Use HTTPS (default: True)
    owner_id=None,               # Developer ID for SDK auth
    sdk_secret=None,             # SDK secret for developer auth
    hwid=None,                   # Custom HWID (auto-generated if None)
)

API Reference

Session Management

  • init_session() - Initialize app session
  • ensure_device() - Register/refresh device credentials
  • ensure_access_token() - Get valid access token (auto-refreshes)

Authentication

  • login(username, password) - Authenticate with username/password
  • register(username, password, email=None, key=None) - Create new account
  • license(license_key) - Authenticate with license key
  • upgrade(license_key) - Upgrade account with license key

Session Operations

  • check() - Verify session is valid
  • heartbeat() - Send heartbeat (keep session alive)
  • get_var(name) - Get application variable
  • log(action, data=None) - Log an event

Advanced

  • call_protected(path, data) - Make authenticated API call
  • call_bootstrap(path, data) - Make bootstrap API call (no auth)

Security Notes

  • All request bodies are encrypted on the wire using NaCl box
  • Device credentials are stored locally (consider encrypting at rest)
  • The SDK automatically handles token refresh
  • DPoP tokens prove possession of device key

License

MIT

Project details


Download files

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

Source Distribution

authguard_py-1.0.0.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

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

authguard_py-1.0.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file authguard_py-1.0.0.tar.gz.

File metadata

  • Download URL: authguard_py-1.0.0.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for authguard_py-1.0.0.tar.gz
Algorithm Hash digest
SHA256 7cb0266fab010b0bd91cdfc5f13af40360538b4474d38468cf131d1d11f3419b
MD5 9b67ffbaddcf6f9d7551d83447dd72d7
BLAKE2b-256 ae9cf70173280f42c049b634e0122529c8b6006d6763ae543ad52e7504798bdc

See more details on using hashes here.

File details

Details for the file authguard_py-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: authguard_py-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for authguard_py-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fa4ae1257faa31ee90e0802cc2f361c470c227465b6b1975f631e0bc166f8a7a
MD5 80cf45ae075d150992f3257a8d7b8350
BLAKE2b-256 31afc7f5283c0e62ecd015383091a2938b46a901c8745182b0471a21d68a935e

See more details on using hashes here.

Supported by

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