Menu AuthGuardCentro de ajuda
Englishauthguard.pt

Programadores · SDKs

SDK Go

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

O SDK Go está na pasta sdks/go do repositório (pacote authguard) e usa go-oidc/v3 com go-jose/v4. Ainda não está publicado: aponte o seu go.mod para a cópia local com uma diretiva replace.

Instalar

go mod edit -require=<módulo do sdks/go>@v0.1.0 -replace=<módulo do sdks/go>=../authguard/sdks/go

O nome exato do módulo está no go.mod da pasta sdks/go.

Criar um pedido e esperar

intents, err := authguard.NewIntentsClient(authguard.IntentsConfig{
	BaseURL:      "https://identity.example.com",
	ClientID:     os.Getenv("AUTHGUARD_CLIENT_ID"),
	ClientSecret: os.Getenv("AUTHGUARD_CLIENT_SECRET"),
})
if err != nil {
	return err
}

result, err := intents.CreateIntent(ctx, authguard.CreateIntentRequest{
	OperationType:     "invoice.pay",
	SubjectEmail:      "ana@example.com",
	ExternalReference: "INV-42",
	ExpiresInSeconds:  900,
	Fields: map[string]any{
		"amount": authguard.MoneyValue{Amount: "1250.00", Currency: "EUR"},
	},
}, "erp-INV-42-attempt-1")
if err != nil {
	return err
}
fmt.Println(result.Intent.ComparisonCode) // mostre-o junto à operação

decided, err := intents.WaitForDecision(ctx, result.Intent.IntentID,
	&authguard.WaitOptions{Timeout: 15 * time.Minute})

Webhooks, recibos e OIDC

O pacote tem funções para verificar webhooks Standard Webhooks, o resumo do pedido e o recibo, e o fluxo OIDC com PKCE. Use sempre os bytes em bruto do corpo e elimine duplicados pelo webhook-id.

Códigos de erro deste artigo

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