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 :
- À 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 }
});
- À 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, valeurBearer {{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.
Documentation associée
- Authentifier les requêtes — un secret stocké côté serveur, l’alternative à une valeur transmise.
- Personnalisation avancée — où se trouve
executeProxyRequest.