Skip to main content

Aegis Auth is a unified identity management system providing memory-safe Rust-based authentication. Consolidation of disparate identity providers into a single canonical source.

Project description

Aegis Auth - Python SDK

Aegis Auth is a unified identity management system providing memory-safe Rust-based authentication. Consolidation of disparate identity providers into a single canonical source.

Aegis Auth by Navchetna Technologies.
Securing the future of decentralized identity.
© 2026 Standard Core v3.


Official Python SDK for the Aegis Authentication System. Supports traditional authentication, WebAuthn/Passkeys, MFA, and more.

Installation

pip install aegis-auth-navchetna

Quick Start

from aegis_auth import AegisAuth

# Initialize the client
aegis = AegisAuth(api_key="your-api-key-here")

# Login
try:
    response = aegis.login("user@example.com", "password")
    print(f"Logged in: {response['user']['email']}")
except Exception as e:
    print(f"Login failed: {e}")

# Check authentication status
if aegis.is_authenticated():
    print("User is authenticated")
    user = aegis.get_user()
    print(f"Current user: {user['email']}")

Authentication Methods

Email/Password Authentication

# Login
response = aegis.login("user@example.com", "password")
print(f"Access token: {response['access_token']}")

# Register
response = aegis.register(
    email="user@example.com",
    password="securePassword123",
    first_name="John",
    last_name="Doe"
)
print("Registration successful")

# Logout
aegis.logout()

Password Reset

# Request password reset
aegis.forgot_password("user@example.com")
print("Password reset email sent")

# Reset password with token
aegis.reset_password("reset-token", "newPassword123")
print("Password reset successful")

Multi-Factor Authentication (MFA)

# Enable MFA
mfa_data = aegis.enable_mfa()
print(f"QR Code: {mfa_data['qr_code']}")
print(f"Secret: {mfa_data['secret']}")
print(f"Backup codes: {mfa_data['backup_codes']}")

# Verify MFA code
aegis.verify_mfa("123456")
print("MFA verified")

# Disable MFA
aegis.disable_mfa("123456")
print("MFA disabled")

User Profile Management

# Get profile
profile = aegis.get_profile()
print(f"User profile: {profile}")

# Update profile
updated_profile = aegis.update_profile({
    "first_name": "Jane",
    "last_name": "Smith",
    "phone": "+1234567890"
})
print("Profile updated")

Event Handling

# Register event handlers
def on_login(user):
    print(f"User logged in: {user['email']}")

def on_logout():
    print("User logged out")

def on_error(error_data):
    print(f"Error: {error_data['error']}")

aegis.on('login', on_login)
aegis.on('logout', on_logout)
aegis.on('error', on_error)

Token Management

# Check authentication status
if aegis.is_authenticated():
    print("User is authenticated")

# Get current user
user = aegis.get_user()
if user:
    print(f"Current user: {user['email']}")

# Get access token
token = aegis.get_access_token()
if token:
    print(f"Access token: {token}")

# Manual token refresh
try:
    response = aegis.refresh_access_token()
    print("Token refreshed successfully")
except Exception as e:
    print(f"Token refresh failed: {e}")

Configuration

from aegis_auth import AegisAuth

# Basic configuration
aegis = AegisAuth(api_key="your-api-key")

# Custom base URL
aegis = AegisAuth(
    api_key="your-api-key",
    base_url="https://your-aegis-instance.com"
)

# Using convenience function
from aegis_auth import create_client

aegis = create_client(api_key="your-api-key")

Error Handling

from aegis_auth import AegisAuth, AegisAuthError

aegis = AegisAuth(api_key="your-api-key")

try:
    aegis.login("user@example.com", "wrongpassword")
except AegisAuthError as e:
    if "Invalid credentials" in str(e):
        print("Please check your email and password")
    elif "Network" in str(e):
        print("Please check your internet connection")
    else:
        print(f"Authentication error: {e}")
except Exception as e:
    print(f"Unexpected error: {e}")

Advanced Usage

Custom Request Headers

# The SDK automatically handles API key and authorization headers
# For custom headers, you can extend the session:

aegis.session.headers.update({
    'Custom-Header': 'value'
})

Automatic Token Refresh

The SDK automatically refreshes tokens 1 minute before expiry. You can listen for refresh events:

def on_token_refresh(user):
    print(f"Token refreshed for user: {user['email']}")

aegis.on('token_refresh', on_token_refresh)

Requirements

  • Python 3.7+
  • requests >= 2.25.0

Security Best Practices

  1. Never expose your API key in client-side code or version control
  2. Use environment variables to store sensitive configuration
  3. Implement proper error handling to avoid exposing sensitive information
  4. Use HTTPS in production environments
  5. Implement logout functionality to clear tokens when users sign out

Support


Aegis Auth by Navchetna Technologies
Securing the future of decentralized identity
© 2026 Standard Core v3

License

MIT License - see LICENSE file for details.

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

aegis_auth_navchetna-1.0.0.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

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

aegis_auth_navchetna-1.0.0-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aegis_auth_navchetna-1.0.0.tar.gz
Algorithm Hash digest
SHA256 06a01e1efea1d703484ca26df48a283b879822e1efd75d6316e1ae09214f910a
MD5 35cd209659341a99a0ebcb07ac40ae4c
BLAKE2b-256 2f956526c1d40ce91a32ead385b5cca3af3b5652638c07b8771249729a17cee6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aegis_auth_navchetna-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b615e34875b75858f65461e803f28dd23bf082c9994312c6d12ba3179af09574
MD5 2149922e70634aca0f7e06af73fd68c5
BLAKE2b-256 a0c8728fe92aa57f7571389be59b7906784b67eec0b08233f8f15ce9c1dc9958

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