Documentation

Generate secret

Generate a secret to register your user in the 2FA system. Display it to the user — they enter it in the Touchque mobile app to link their device.

POST/auth/generate-secret
Body parameters
ParameterTypeDescription
externalUsernamestringYour user ID Required
Secret is returned only in this response. Validity: 5 minutes.
Request
const { Touchque } = require('@touchque/node');

const tq = new Touchque({
  apiKey: 'tq_abc123',
  apiSecret: 'YOUR_API_SECRET'
});

async function setupUser() {
  // Generate a new secret for the user (expires in 5 minutes)
  const result = await tq.auth.generateSecret({
    externalUsername: 'user@yourcompany.com'
  });
  
  // result = { secret: "A1B2...", expiresAt: "2026-05-18...", ttlMs: 300000, externalUsername: "..." }
  // ⚠️ Secret is only returned in this response!
  console.log('Secret:', result.secret);
}

setupUser();
Response 200
{
  "secret": "A1B2C3D4E5F6A7B8C9D0E1F2",
  "qrCodeDataUrl": "data:image/png;base64,…",
  "externalUsername": "user@yourcompany.com",
  "expiresAt": "2026-11-02T12:05:00.000Z",
  "ttlMs": 300000,
  "recoveryCodes": ["…", "…"]
}