Kada Watsonov poziv ne uspije prije nego stigne do usluge, provjerite je li neuspjeli zahtjev zahtjev za IAM token. Poziv autentificiran preko IAM-a može prvo kontaktirati IAM, a zatim uslugu.

U aplikaciji koja već koristi odgovarajući Watson SDK i ovisnost tunnel, dajte iste mrežne postavke obama objektima:

const tunnel = require('tunnel');
const AssistantV2 = require('ibm-watson/assistant/v2');
const { IamAuthenticator } = require('ibm-watson/auth');

const httpsAgent = tunnel.httpsOverHttp({
  proxy: { host: 'proxy.example', port: 8080 },
});

const network = { httpsAgent, proxy: false };
const authenticator = new IamAuthenticator({
  apikey: apiKey,
  ...network,
});
const assistant = new AssistantV2({
  version: serviceVersion,
  serviceUrl,
  authenticator,
  ...network,
});

Zadržite postojeće apiKey, serviceVersion i serviceUrl aplikacije. API i IAM završne točke ostaju njihova predviđena odredišta; proxy poslužitelj sluša unutar agenta. Popis HTTP proxyja može pružiti kandidatne adrese kada se objema javnim završnim točkama usluge može pristupiti kroz proxy koji odaberete.

tunnel.httpsOverHttp uspostavlja HTTPS put kroz HTTP proxy. proxy: false sprječava SDK da primijeni drugu ugrađenu proxy konfiguraciju povrh tog prilagođenog agenta.

Ako ste te postavke prije davali samo objektu assistant, autentifikator je mjesto koje nedostaje. Osnovna autentifikacija i već izdani bearer token imaju različite životne cikluse dohvaćanja tokena, pa se ovaj dodatni IAM put odnosi na mrežni autentifikator koji se ovdje koristi.

Povezani članci