Secret sıfırla
Kullanıcının mevcut secret'ını tamamen siler. Frozen durumu, reject sayacı ve cihaz bağlantısı dahil her şey temizlenir. Yanıt, QR görseliyle yeni bir secret ve 10 yeni kurtarma kodu taşır (5 dakika geçerli): kullanıcı telefonunu bununla yeniden bağlar.
POST/auth/secret/reset
Gövde parametreleri
| Parametre | Tip | Açıklama |
|---|---|---|
externalUsername | string | Sizin user ID Zorunlu |
Dikkat: Bu işlem geri alınamaz. Eski secret artık geçersiz olur.
Frozen çözme: Kullanıcı çok fazla reddedip 2FA dondurulduysa, reset ile
frozen durumu da temizlenir.İstek
const { Touchque } = require('@touchque/node');
const tq = new Touchque({
apiKey: 'tq_abc123',
apiSecret: 'YOUR_API_SECRET'
});
async function resetDevice() {
// Kullanıcının mevcut secretını kalıcı olarak siler ve yenisini döndürür
const reset = await tq.auth.resetSecret({
externalUsername: 'user@yourcompany.com'
});
// reset = { secret, qrCodeDataUrl, recoveryCodes, expiresAt, externalUsername }
// Yeni secret 5 dk geçerli: telefonu reset.qrCodeDataUrl ile yeniden bağlayın
console.log('Yeni secret:', reset.secret);
}
resetDevice();<?php
require_once 'vendor/autoload.php';
use Touchque\Touchque;
use Touchque\Config;
$tq = new Touchque(new Config('tq_abc123', 'YOUR_API_SECRET'));
try {
// Kullanıcının mevcut secretını kalıcı olarak sıfırlar ve yenisini döndürür
$reset = $tq->auth->resetSecret('user@yourcompany.com');
// Yeni secret 5 dk geçerli: telefonu $reset['qrCodeDataUrl'] ile yeniden bağlayın
echo "New Secret: " . $reset['secret'];
} catch (\Exception $e) {
echo "Error: " . $e->getMessage();
}package main
import (
"fmt"
"log"
"github.com/Touchque/touchque-go/v5/touchque"
)
func main() {
tq, err := touchque.New(touchque.DefaultConfig("tq_abc123", "YOUR_API_SECRET"))
if err != nil {
log.Fatal(err)
}
// Kullanıcının mevcut secretını kalıcı olarak sıfırlar ve yenisini döndürür
reset, err := tq.Auth.ResetSecret("user@yourcompany.com")
if err != nil {
log.Fatal(err)
}
// Yanıt yeni secret'tır (5 dk geçerli): telefonu reset.QRCodeDataURL ile yeniden bağlayın
fmt.Println("New Secret:", reset.Secret)
}from touchque import Touchque, Config
tq = Touchque(Config(api_key="tq_abc123", api_secret="YOUR_API_SECRET"))
# Kullanıcının mevcut secretını kalıcı olarak sıfırlar ve yenisini döndürür
reset = tq.auth.reset_secret("user@yourcompany.com")
# Yeni secret 5 dk geçerli: telefonu reset['qrCodeDataUrl'] ile yeniden bağlayın
print("New Secret:", reset["secret"])var tq = new TouchqueClient(new TouchqueOptions { ApiKey = "tq_abc123", ApiSecret = "YOUR_API_SECRET" });
// Kullanıcının mevcut secretını kalıcı olarak sıfırlar ve yenisini döndürür
var reset = await tq.Auth.ResetSecretAsync("user@yourcompany.com");
Console.WriteLine($"New Secret: {reset.Secret}"); // reset.QrCodeDataUrl relinks the phonevar tq = new TouchqueClient(new TouchqueOptions().apiKey("tq_abc123").apiSecret("YOUR_API_SECRET"));
// Kullanıcının mevcut secretını kalıcı olarak sıfırlar ve yenisini döndürür
JsonNode reset = tq.auth().resetSecret("user@yourcompany.com");
System.out.println("New Secret: " + reset.path("secret").asText()); // reset.path("qrCodeDataUrl") relinks the phonetq = Touchque::Client.new(api_key: "tq_abc123", api_secret: "YOUR_API_SECRET")
# Kullanıcının mevcut secretını kalıcı olarak sıfırlar ve yenisini döndürür
reset = tq.auth.reset_secret("user@yourcompany.com")
puts "New Secret: #{reset["secret"]}" # reset["qrCodeDataUrl"] relinks the phone# 1) İmza oluştur
BODY='{"externalUsername": "user@yourcompany.com"}'
BODY_HASH=$(echo -n "$BODY" | openssl dgst -sha256 | awk '{print $2}')
TS=$(date +%s000)
NONCE=$(openssl rand -hex 16)
MSG="POST:/auth/secret/reset:$TS:$NONCE:$BODY_HASH"
SIG=$(echo -n "$MSG" | openssl dgst -sha256 -hmac "YOUR_API_SECRET" | awk '{print $2}')
# 2) İstek gönder
curl -X POST https://api.touchque.com/auth/secret/reset \
-H "x-api-key: tq_abc123" \
-H "x-signature: $SIG" \
-H "x-timestamp: $TS" \
-H "x-nonce: $NONCE" \
-H "Content-Type: application/json" \
-d "$BODY"Cevap 200
{
"success": true,
"secret": "A1B2C3D4E5F6A7B8C9D0E1F2",
"qrCodeDataUrl": "data:image/png;base64,…",
"externalUsername": "user@yourcompany.com",
"message": "Secret reset successfully",
"expiresAt": "2026-11-02T12:05:00.000Z",
"recoveryCodes": ["…", "…"]
}