Transmettre des valeurs dynamiques

L’URL et les valeurs d’en-tête d’un service lié peuvent contenir des espaces réservés {{params.x}} qui sont remplis au moment de l’appel du service. Un même service peut ainsi s’adapter à chaque requête — transporter un terme de recherche dans la query string, ou transmettre le jeton de l’utilisateur connecté pour que votre endpoint puisse l’authentifier — sans coder la valeur en dur dans la configuration.

Où placer les espaces réservés

  • Dans l’URL — par ex. https://api.example.com/search?q={{params.query}}. La valeur est

encodée pour l’URL : du texte libre peut donc être transmis sans risque.

  • Dans une valeur d’en-tête — ajoutez sous Headers un en-tête dont la valeur est un modèle, par ex. un

en-tête Authorization avec la valeur Bearer {{params.token}}.

Un espace réservé s’écrit {{params.<name>}}, où <name> est un identifiant simple.

D’où viennent les valeurs

Les valeurs proviennent de deux endroits et sont fusionnées — une valeur fournie à l’appel remplace une valeur d’initialisation portant le même nom :

  1. À l’initialisation — pour les valeurs qui restent identiques pendant toute la session (un jeton utilisateur, un

identifiant de tenant). Passez-les à startAssistant :

   skdwn.startAssistant({
     assistantId: 'as-xxxxxxxx',
     accessToken: 'your-key-or-token',
     params: { token: yourUserToken }
   });
  1. À chaque appel — pour les valeurs qui dépendent du moment (un terme de recherche, un identifiant sélectionné). Passez-les comme

quatrième argument de executeProxyRequest :

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

Un même service peut utiliser les deux à la fois — un en-tête {{params.token}} fixe et un {{params.query}} propre à chaque appel dans l’URL.

params n’est pas userInformation

Les params servent uniquement à remplir ces espaces réservés — ils ne sont jamais envoyés au modèle ni enregistrés dans les analyses. Gardez les jetons et les valeurs de requête dans params ; n’utilisez userInformation que pour le contexte concernant le visiteur.

Exemple : transmettre le jeton de l’utilisateur

Un schéma courant consiste à laisser votre propre endpoint authentifier l’utilisateur. Configurez le service avec :

  • URL — https://api.example.com/me/orders
  • En-tête — nom Authorization, valeur Bearer {{params.token}}
  • À l’initialisation — params: { token: <the token your backend issued the user> }

Votre API reçoit un en-tête Authorization: Bearer … normal et le valide, exactement comme pour n’importe quelle requête. Comme votre endpoint valide le jeton, c’est sûr même si la valeur est fournie par la page : un jeton invalide ou appartenant à quelqu’un d’autre ne donne accès qu’à ce que ce jeton permet déjà.

Ne transmettez qu’un identifiant que votre endpoint vérifie

Une valeur {{params}} provient de la page : elle n’est donc fiable que si l’endpoint qui la reçoit la vérifie (un jeton signé qu’il valide) ou si la valeur n’est pas sensible (un terme de recherche). Ne considérez jamais un identifiant brut passé dans params comme une preuve de l’identité de l’utilisateur — validez plutôt un véritable identifiant d’authentification.


Nous contacter

Besoin d’aide ?

Dites-nous à quelles questions votre assistant de site web doit répondre. Nous vous aiderons à identifier le bon contenu, les bons réglages et la meilleure façon de le lancer.