JavaScript (Fetch API)
// Login Function
async function loginToPrior(username, password) {
try {
const response = await fetch('https://priornetwork.com/api/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
username: username,
password: password,
rememberMe: true
})
});
const data = await response.json();
if (data.success) {
if (data.requiresTwoFactor) {
// Handle 2FA
const code = prompt('Enter 2FA code:');
return await complete2FA(code, data.tempToken);
} else {
// Store token securely
localStorage.setItem('priorToken', data.token);
return data;
}
} else {
throw new Error(data.error);
}
} catch (error) {
console.error('Login failed:', error);
throw error;
}
}
// Get User Profile
async function getUserProfile() {
const token = localStorage.getItem('priorToken');
try {
const response = await fetch('https://priornetwork.com/api/user/profile', {
headers: {
'Authorization': token
}
});
if (response.ok) {
return await response.json();
} else {
throw new Error('Failed to fetch profile');
}
} catch (error) {
console.error('Profile fetch failed:', error);
throw error;
}
}
// Validate Token
async function validateToken(token) {
try {
const response = await fetch('https://priornetwork.com/api/user/validate-token', {
method: 'POST',
headers: {
'Authorization': token
}
});
return response.ok ? await response.json() : null;
} catch (error) {
console.error('Token validation failed:', error);
return null;
}
}
Python (requests)
import requests
import json
class PriorNetworkAPI:
def __init__(self):
self.base_url = "https://priornetwork.com"
self.token = None
def login(self, username, password, remember_me=True):
"""Login to Prior Network"""
url = f"{self.base_url}/api/login"
data = {
"username": username,
"password": password,
"rememberMe": remember_me
}
response = requests.post(url, json=data)
result = response.json()
if result.get("success"):
if result.get("requiresTwoFactor"):
# Handle 2FA
code = input("Enter 2FA code: ")
return self.complete_2fa(code, result["tempToken"])
else:
self.token = result["token"]
return result
else:
raise Exception(result.get("error", "Login failed"))
def complete_2fa(self, code, temp_token):
"""Complete 2FA authentication"""
url = f"{self.base_url}/api/user/2fa/login"
data = {
"code": code,
"tempToken": temp_token
}
response = requests.post(url, json=data)
result = response.json()
if result.get("success"):
self.token = result["token"]
return result
else:
raise Exception(result.get("error", "2FA failed"))
def get_user_profile(self):
"""Get user profile information"""
if not self.token:
raise Exception("Not authenticated")
url = f"{self.base_url}/api/user/profile"
headers = {"Authorization": self.token}
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
else:
raise Exception("Failed to fetch profile")
def validate_token(self, token=None):
"""Validate authentication token"""
token = token or self.token
if not token:
return False
url = f"{self.base_url}/api/user/validate-token"
headers = {"Authorization": token}
response = requests.post(url, headers=headers)
return response.status_code == 200
# Usage Example
api = PriorNetworkAPI()
try:
# Login
login_result = api.login("username", "password")
print("Login successful!")
# Get profile
profile = api.get_user_profile()
print(f"Welcome, {profile['displayName']}!")
# Validate token
if api.validate_token():
print("Token is valid")
except Exception as e:
print(f"Error: {e}")
cURL Commands
# Login
curl -X POST https://priornetwork.com/api/login \
-H "Content-Type: application/json" \
-d '{
"username": "johndoe",
"password": "userpassword123",
"rememberMe": true
}'
# Get User Profile
curl -X GET https://priornetwork.com/api/user/profile \
-H "Authorization: your_jwt_token_here"
# Get User Theme
curl -X GET https://priornetwork.com/api/user/theme \
-H "Authorization: your_jwt_token_here"
# Validate Token
curl -X POST https://priornetwork.com/api/user/validate-token \
-H "Authorization: your_jwt_token_here"
# 2FA Login (if required)
curl -X POST https://priornetwork.com/api/user/2fa/login \
-H "Content-Type: application/json" \
-d '{
"code": "123456",
"tempToken": "temp_token_from_initial_login"
}'