<?php // demo/classes/demo_APIKey.php
/**
* Demonstrate Classes to Generate / Validate an API Key PHP7+
*
* https://www.phpclasses.org/recommend/854-A-random-API-key-generator-to-server-as-access-restriction-to-AP.html
*/
error_reporting(E_ALL);
require_once('class_APIKey.php');
require_once('class_APIKeyValidation.php');
require_once('class_APIKeyException.php');
echo '<pre>';
// Show how to use the class with Success to validate the key
$apikey = '3c98ea3c99806fde3aa810c9f0f56e0d'; // Came from URL or other request data
try {
$name = APIKeyValidation::validate($apikey);
echo PHP_EOL . "API Key $apikey belongs to $name";
}
catch(APIKeyException $e) {
echo PHP_EOL . $e->getMessage();
echo PHP_EOL . $e->getCode() . " can be used as the HTTP code";
echo PHP_EOL;
}
// Show how to use the class with Failure to validate the key
$apikey = 'This-Bogus-API-Key';
try {
$name = APIKeyValidation::validate($apikey);
echo PHP_EOL . "API Key $apikey belongs to $name";
}
catch(APIKeyException $e) {
echo PHP_EOL . $e->getMessage();
echo PHP_EOL . $e->getCode() . " can be used as the HTTP code";
echo PHP_EOL;
}
// Show how to generate a new API key
$new = APIKeyValidation::storeKey('New-User');
echo PHP_EOL . "Look for '$new' in this list:";
echo PHP_EOL;
readfile( APIKeyValidation::APIKEYFILE );
|