O PWF Auth é o backend de chaves de licença, contas de utilizador e atualizações OTA que você mesmo construiria — já pronto, documentado e por trás de uma API REST simples.
curl -X POST https://pwfauth.com/api/auth/check-key.php \
-H "X-App-Secret: $APP_SECRET" \
-d '{"license_key":"PWF-XXXX-XXXX-XXXX"}'
# → { "success": true, "valid": true,
# "key": { "expires_at": "...", ... } }
Dim http As New HttpClient()
http.DefaultRequestHeaders.Add("X-App-Secret", APP_SECRET)
Dim res = Await http.PostAsync("https://pwfauth.com/api/auth/check-key.php",
New StringContent("{""license_key"":""PWF-XXXX-XXXX-XXXX""}"))
' → {"success":true,"valid":true,"key":{...}}
var http = new HttpClient();
http.DefaultRequestHeaders.Add("X-App-Secret", APP_SECRET);
var res = await http.PostAsync("https://pwfauth.com/api/auth/check-key.php",
new StringContent("{\"license_key\":\"PWF-XXXX-XXXX-XXXX\"}"));
// → {"success":true,"valid":true,"key":{...}}
$ch = curl_init('https://pwfauth.com/api/auth/check-key.php');
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-App-Secret: ' . $APP_SECRET],
CURLOPT_POSTFIELDS => '{"license_key":"PWF-XXXX-XXXX-XXXX"}']);
$res = json_decode(curl_exec($ch), true);
// → ['success' => true, 'valid' => true, ...]