Skip to content

Authentication Examples

Complete examples for implementing EPMware REST API authentication.

Token Management Class

import requests
import os
from datetime import datetime, timedelta

class EPMwareAuth:
    """Manage EPMware API authentication"""

    def __init__(self, base_url, token=None):
        self.base_url = base_url
        self.token = token or os.environ.get('EPMWARE_TOKEN')
        self.headers = self._create_headers()

    def _create_headers(self):
        """Create authentication headers"""
        return {
            'Authorization': f'Token {self.token}',
            'Content-Type': 'application/json'
        }

    def test_connection(self):
        """Test API connection"""
        try:
            response = requests.get(
                f"{self.base_url}/service/api/security/users",
                headers=self.headers
            )
            return response.status_code == 200
        except:
            return False

    def refresh_token(self):
        """Placeholder for token refresh logic"""
        # Implement token refresh if supported
        pass

# Usage
auth = EPMwareAuth('https://demo.epmwarecloud.com')
if auth.test_connection():
    print("Authentication successful")

Secure Token Storage

import keyring
import getpass

class SecureTokenManager:
    """Securely store and retrieve API tokens"""

    SERVICE_NAME = "EPMware_API"

    @staticmethod
    def store_token(username, token):
        """Store token securely"""
        keyring.set_password(
            SecureTokenManager.SERVICE_NAME,
            username,
            token
        )

    @staticmethod
    def get_token(username):
        """Retrieve stored token"""
        return keyring.get_password(
            SecureTokenManager.SERVICE_NAME,
            username
        )

    @staticmethod
    def delete_token(username):
        """Remove stored token"""
        keyring.delete_password(
            SecureTokenManager.SERVICE_NAME,
            username
        )

# Store token
token = getpass.getpass("Enter API Token: ")
SecureTokenManager.store_token("api_user", token)

# Retrieve token
stored_token = SecureTokenManager.get_token("api_user")

← Back to Examples | Task Management →