README.md
Rendering markdown...
import json, threading
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import parse_qs
USERS = {
"attacker_code": {"sub": "attacker_id_111", "email": "[email protected]", "email_verified": True},
"victim_code": {"sub": "victim_id_999", "email": "[email protected]", "email_verified": True},
}
class Handler(BaseHTTPRequestHandler):
def log_message(self, *a): pass
def send_json(self, code, body):
data = json.dumps(body).encode()
self.send_response(code)
self.send_header("Content-Type", "application/json")
self.send_header("Content-Length", str(len(data)))
self.end_headers()
self.wfile.write(data)
def do_POST(self):
body = self.rfile.read(int(self.headers.get("Content-Length", 0))).decode()
code = parse_qs(body).get("code", [""])[0]
self.send_json(200, {"access_token": code, "token_type": "Bearer"})
def do_GET(self):
token = self.headers.get("Authorization", "").removeprefix("Bearer ").strip()
user = USERS.get(token)
self.send_json(200 if user else 401, user or {"error": "invalid_token"})
def start(port=8089):
s = HTTPServer(("127.0.0.1", port), Handler)
threading.Thread(target=s.serve_forever, daemon=True).start()
return s