Menu AuthGuardCentro de ajuda
Englishauthguard.pt

Programadores · SDKs

SDK TypeScript / Node.js

  • 1 min de leitura
  • SaaS · Instalação própria

O pacote @authguard/sdk serve Node.js e usa jose para os JWT.

Instalar

Ainda não está no npm. A partir da pasta sdks/typescript do repositório:

npm ci && npm pack          # produz authguard-sdk-0.1.0.tgz
npm install ./authguard-sdk-0.1.0.tgz

Criar um pedido e esperar

import { IntentsClient, ApiError } from "@authguard/sdk";

const intents = new IntentsClient({
  baseUrl: "https://identity.example.com",
  clientId: process.env.AUTHGUARD_CLIENT_ID!,
  clientSecret: process.env.AUTHGUARD_CLIENT_SECRET!,
});

const { intent } = await intents.createIntent(
  { operationType: "invoice.pay", subjectEmail: "ana@example.com",
    externalReference: "INV-42", expiresInSeconds: 900,
    fields: { amount: { amount: "1250.00", currency: "EUR" } } },
  { idempotencyKey: "erp-INV-42-attempt-1" },
);
console.log(intent.comparisonCode); // mostre-o junto à operação

const decided = await intents.waitForDecision(intent.intentId, { timeoutMs: 15 * 60_000 });

cancelIntent dá um ApiError com code === "conflict" quando o pedido já terminou.

Verificar um webhook

import { verifyWebhook, WebhookVerificationError } from "@authguard/sdk";

const event = verifyWebhook(process.env.AUTHGUARD_WEBHOOK_SECRET!, req.headers, req.body); // corpo em bruto

Use o corpo em bruto (por exemplo express.raw) e elimine duplicados pelo cabeçalho webhook-id.

Verificar o recibo

verifyIntentDigest(intent.intentJson, intent.intentDigest) e checkReceipt(intent.receipt, { intentId, intentDigest, state, clientId }).

Códigos de erro deste artigo

Referência do artigodev-sdk-typescriptindique-a ao suporte para identificar este artigo. Verificado contra o produto no commit 5f6607a8.