| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #!/usr/bin/env python3
- """
- Usage: python create_api_key.py <email> <name>
- Creates an API key for the given user and stores it in api_keys.json.
- """
- import json
- import os
- import secrets
- import sys
- from datetime import datetime
- KEYS_FILE = os.path.join(os.path.dirname(__file__), "api_keys.json")
- def create_key(email: str, name: str) -> str:
- keys: dict = {}
- if os.path.exists(KEYS_FILE):
- with open(KEYS_FILE) as f:
- keys = json.load(f)
- # Check for duplicate email
- for k, v in keys.items():
- if v["email"] == email:
- print(f"[!] A key already exists for {email}: {k}")
- print(" Delete it from api_keys.json first if you want a new one.")
- sys.exit(1)
- key = "tk_" + secrets.token_hex(24)
- keys[key] = {
- "email": email,
- "name": name,
- "created_at": datetime.now().isoformat(),
- }
- with open(KEYS_FILE, "w") as f:
- json.dump(keys, f, indent=2)
- print(f"\n✓ API key created for {name} <{email}>")
- print(f"\n Key: {key}\n")
- print(" Share the key with the user — it cannot be recovered later.")
- return key
- if __name__ == "__main__":
- if len(sys.argv) != 3:
- print("Usage: python create_api_key.py <email> <name>")
- sys.exit(1)
- create_key(sys.argv[1], sys.argv[2])
|