<!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Solar Network Captcha</title> <link href="https://fonts.googleapis.com/css2?family=Roboto+Mono&display=swap" rel="stylesheet" /> <style> body { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100vh; background-color: #2d2d2d; font-family: "Roboto Mono", monospace; color: #c9d1d9; } .parent { padding: 20px; max-width: 480px; margin: 0 auto; } h2 { font-size: 18px; font-weight: 300; color: #ffffff; margin-bottom: 15px; } .footer { margin-top: 20px; font-size: 11px; opacity: 0.6; } .footer-product { font-size: 12px; font-weight: bold; margin-bottom: 5px; opacity: 0.8; } </style> <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer ></script> </head> <body> <div class="parent"> <div class="container"> <h1>reCaptcha</h1> <div class="cf-turnstile" data-sitekey="{{ .ApiKey }}" data-callback="onSuccess" ></div> </div> <div class="footer"> <div class="footer-product">Solar Network Captcha Gateway</div> <a href="https://solsynth.dev" style="color: #c9d1d9; text-decoration: none" >Solsynth LLC</a > © 2025<br /> Powered by <a href="https://www.cloudflare.com/turnstile/" style="color: #c9d1d9" >Cloudflare Turnstile</a > <br /> Hosted by <a href="https://github.com/Solsynth/HyperNet.Nexus" style="color: #c9d1d9" >HyperNet.Nexus</a > </div> </div> <script> function getQueryParam(name) { const urlParams = new URLSearchParams(window.location.search); return urlParams.get(name); } function onSuccess(token) { window.parent.postMessage("captcha_tk=" + token, "*"); const redirectUri = getQueryParam("redirect_uri"); if (redirectUri) { window.location.href = `${redirectUri}?captcha_tk=${encodeURIComponent(token)}`; } } </script> </body> </html>