PHP Classes

File: SQL File

Recommend this page to a friend!
  Packages of Adrian M   PHP CRUD API Generator   sql/create_api_users.sql   Download  
File: sql/create_api_users.sql
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: PHP CRUD API Generator
Create an API to access MySQL database record
Author: By
Last change: up
Date: 3 months ago
Size: 2,184 bytes
 

Contents

Class file image Download
-- API Users Table -- Run this SQL to create the users table CREATE TABLE IF NOT EXISTS api_users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(100) NOT NULL UNIQUE, email VARCHAR(255) NOT NULL UNIQUE, password_hash VARCHAR(255) NOT NULL, role VARCHAR(50) DEFAULT 'readonly', api_key VARCHAR(64) UNIQUE NOT NULL, active TINYINT(1) DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, last_login TIMESTAMP NULL, INDEX idx_username (username), INDEX idx_email (email), INDEX idx_api_key (api_key), INDEX idx_active (active) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- Optional: API key usage tracking CREATE TABLE IF NOT EXISTS api_key_usage ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, api_key VARCHAR(64) NOT NULL, endpoint VARCHAR(255), ip_address VARCHAR(45), request_count INT DEFAULT 0, last_used TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES api_users(id) ON DELETE CASCADE, INDEX idx_api_key (api_key), INDEX idx_last_used (last_used), INDEX idx_user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- Create first admin user -- Username: admin -- Password: changeme123 -- API Key: generated below INSERT INTO api_users (username, email, password_hash, role, api_key, active) VALUES ( 'admin', 'admin@example.com', '$argon2id$v=19$m=65536,t=4,p=1$SXdYVUozWnE3RmtTWm9VRA$9xL8Ql0DLDqHHgPL9Bs5GqMwJZz+qLzqVHlV/+5vWtk', 'admin', CONCAT( LPAD(HEX(FLOOR(RAND() * 4294967296)), 8, '0'), LPAD(HEX(FLOOR(RAND() * 4294967296)), 8, '0'), LPAD(HEX(FLOOR(RAND() * 4294967296)), 8, '0'), LPAD(HEX(FLOOR(RAND() * 4294967296)), 8, '0') ), 1 ); -- View the created admin user and API key SELECT id, username, email, role, api_key, active, created_at FROM api_users WHERE username = 'admin'; -- Note: Default password is 'changeme123' - CHANGE THIS IMMEDIATELY IN PRODUCTION!