Passa valori dinamici

L’URL e i valori degli header di un servizio collegato possono contenere segnaposto {{params.x}} che vengono compilati quando il servizio viene chiamato. In questo modo un solo servizio si adatta a ogni richiesta (portare un termine di ricerca nella query string, o inoltrare il token dell’utente autenticato perché il tuo endpoint possa autenticarlo) senza scrivere il valore in modo fisso nella configurazione.

Dove vanno i segnaposto

  • Nell’URL: ad es. https://api.example.com/search?q={{params.query}}. Il valore viene

codificato per l’URL, quindi puoi passare testo libero in sicurezza.

  • In un valore di header: aggiungi in Headers un header il cui valore è un template, ad es. un

header Authorization con valore Bearer {{params.token}}.

Un segnaposto si scrive {{params.<name>}}, dove <name> è un identificativo semplice.

Da dove arrivano i valori

I valori vengono forniti da due fonti e uniti: un valore della singola chiamata prevale su un valore di inizializzazione con lo stesso nome:

  1. All’inizializzazione: per i valori che restano uguali per tutta la sessione (un token utente, un

id del tenant). Passali a startAssistant:

   skdwn.startAssistant({
     assistantId: 'as-xxxxxxxx',
     accessToken: 'your-key-or-token',
     params: { token: yourUserToken }
   });
  1. A ogni chiamata: per i valori che dipendono dal momento (un termine di ricerca, un id selezionato). Passali come

quarto argomento di executeProxyRequest:

   executeProxyRequest('search_api', null, callback, { query: userInput });

Un singolo servizio può usarli entrambi contemporaneamente: un header fisso {{params.token}} e un {{params.query}} per chiamata nell’URL.

params non è userInformation

I params servono solo a compilare questi segnaposto: non vengono mai inviati al modello né registrati nelle analisi. Tieni token e valori delle richieste in params; usa userInformation solo per il contesto sul visitatore.

Esempio: inoltra il token dell’utente

Uno schema comune è lasciare che sia il tuo endpoint ad autenticare l’utente. Configura il servizio con:

  • URL: https://api.example.com/me/orders
  • Header: nome Authorization, valore Bearer {{params.token}}
  • All’inizializzazione: params: { token: <the token your backend issued the user> }

La tua API riceve un normale header Authorization: Bearer … e lo convalida, esattamente come farebbe per qualsiasi richiesta. Poiché il tuo endpoint convalida il token, è sicuro anche se il valore è fornito dalla pagina: un token non valido o di un’altra persona concede solo ciò che quel token già consente.

Inoltra solo credenziali che il tuo endpoint verifica

Un valore {{params}} proviene dalla pagina, quindi è affidabile solo se l’endpoint che lo riceve lo verifica (un token firmato che convalida) o se il valore non è sensibile (un termine di ricerca). Non considerare mai un id grezzo passato in params come prova dell’identità dell’utente: convalida invece una credenziale reale.


Contattaci

Hai ancora bisogno di aiuto?

Dicci a quali domande vuoi che risponda l’assistente del tuo sito. Ti aiuteremo a definire i contenuti, i controlli e il percorso di lancio più adatti.