Version de Chat
Cet article s’applique aux versions suivantes de Zendesk Chat :
- Ancien Zendesk Chat (Legacy) + Support (avec l’expérience Chat intégrée au Web Widget en accès anticipé)
- Zendesk Chat Phase 3 (avec l’expérience Chat intégrée au Web Widget en accès anticipé)
- Zendesk Chat Phase 4
Consultez Comment savoir quelle version de Zendesk Chat vous utilisez.
Consultez Activation des visiteurs authentifiés dans le widget Chat si vous utilisez l’une des versions suivantes :
- Ancien Zendesk Chat (Legacy)
- Ancien Zendesk Chat (Legacy) + Support (avec l’intégration Chat limitée)
- Zendesk Chat Phase 3 (Chat uniquement)
Tout afficher
Vous pouvez configurer votre widget afin d’authentifier les visiteurs à chaque chargement de page en utilisant une nouvelle API Javascript API et un token JWT.
Quand vous configurez le Web Widget pour utiliser les visiteurs authentifiés, vous bénéficiez des avantages suivants :
- Vous êtes plus sûr que le visiteur/client auquel vos agents parlent est vraiment qui il dit être.
- Prise en charge du trafic sur plusieurs domaines. Si vous incorporez le widget à plusieurs domaines ou le liez à des services hébergés en externe (Shopify par ex.), l’authentification du visiteur permet qu’il soit vu comme un seul visiteur sur tous les domaines et la plateforme Chat et les agents bénéficient ainsi d’un contexte supérieur.
- Prise en charge de l’identification sur plusieurs appareils/navigateurs. Le visiteur est vu comme la même personne si et quand il choisir d’utiliser un différent appareil ou navigateur quand l’ID personnalisé est spécifié dans l’appel d’authentification.
- Possibilité de présenter les anciennes conversations au visiteur dans le widget
Génération d’un secret partagé Chat
Remarque - Ce secret partagé est différent de celui qui est disponible dans les paramètres du Web Widget pour un contenu du Centre d’aide restreint.
Pour générer le secret partagé requis pour les visiteurs authentifiés, allez à l’onglet des paramètres de sécurité du Widget et cliquez sur le bouton Générer sous la section Authentification des visiteurs.
Comme il s’agit d’un paramètre de sécurité, votre secret partagé est conçu pour être immédiatement généré, copié et collé dans un message à votre équipe d’ingénierie ou directement dans votre code base. Vous ne devez pas le saisir dans un navigateur.
Si vous régénérez le secret partagé, le token précédent est révoqué. Si vous pensez que le secret partagé a été compromis, régénérez-le pour en créer un nouveau. Si vous devez le faire, faites-le quand Chat est hors ligne, car la régénération du secret peut déconnecter les visiteurs du widget pendant 5 minutes.
Une fois le secret partagé généré, utilisez-le pour créer un token JWT (En savoir plus au sujet de JWT) que vous ajouterez au snippet de votre Web Widget.
Création d’un token JWT
Pour créer un token JWT et ajouter le code au snippet du widget Chat autonome
- Construisez une charge de données côté serveur pour le token JWT. Vous devez y inclure les informations suivantes :
- name : nom du client.
- email : adresse e-mail du client.
- external_id : chaîne alphanumérique, qui identifie le client de façon unique. Une fois définie pour le client, cette valeur ne peut pas être modifiée. Nous vous conseillons d’utiliser l’ID utilisateur unique de votre système pour ce champ, par ex. user-123456.
- iat : valeur entière de l’horodatage actuel, en secondes. Certaines fonctions dans des langages spécifiques comme Date.now() de JavaScript renvoie des millisecondes, n’oubliez donc pas de convertir en secondes. L’authentification Iat pour Chat permet un décalage d’horloge de deux minutes.
- exp : valeur entière de l’horodatage actuel, en secondes. Cette valeur indique quand le token JWT arrivera à expiration. Elle peut être supérieure de 7 minutes maximum à la valeur iat.
- Utilisez les exemples de code ci-dessous pour trouver un modèle adapté à vos besoins.
-
Utilisez l’API Javascript zESetting avec la clé `webWidget.authentication.chat.jwtFn` pour offrir une fonction qui fournit un nouveau token JWT à chaque invocation. Voici un exemple de code ::
window.zESettings = {
webWidget: {
authenticate: {
chat: {
jwtFn: function(callback) {
fetch(’JWT_TOKEN_ENDPOINT’).then(function(res) {
res.text().then(function(jwt) {
callback(jwt);
});
});
}
}
}
}
};Dans l’exemple ci-dessus, JWT_TOKEN_ENDPOINT est un point de terminaison qui peut être implémenté sur votre propre serveur pour obtenir un nouveau token JWT.
Remarque - jwtFn peut être appelé plusieurs fois au cours d’une session de chat afin d’obtenir un nouveau token JWT pour valider l’identité du visiteur pendant toute la durée de la session. À l’heure actuelle, il n’est pas possible de déconnecter l’utilisateur du widget quand il se déconnecte de l’application/du site Web hôte. Nous vous fournirons des instructions quand nous ajouterons cette fonctionnalité.
Exemples de code
Votre jeton doit être généré dynamiquement côté serveur au chargement de la page. Cherchez ci-dessous le modèle adapté à vos besoins. Personnalisez l’exemple de code en fonction de vos besoins, en n’oubliant pas de remplacer #{details} par vos informations.
Si aucun de ces exemples ne répond à vos besoins, JWT a une liste plus complète de bibliothèques JWT.
Ruby
Commencez par installer ruby-jwt.
Si vous utilisez Rubygems :
gem install jwt
Si vous utilisez Bundler, ajoutez ce qui suit à votre fichier gem :
gem 'jwt'
Puis générez un token en utilisant le secret partagé :
require ’jwt’
payload = {
:name => "#{customerName}",
:email => "#{customerEmail}",
:iat => timestamp,
:external_id => "#{externalId}"
}
token = JWT.encode payload, "#{yourSecret}"
NodeJS
Installez jsonwebtoken :
npm install jsonwebtoken --save-dev
Puis générez un token en utilisant le secret partagé :
var jwt = require(’jsonwebtoken’);
var payload = {
name: ’#{customerName}’,
email: ’#{customerEmail}’,
iat: #{timestamp},
external_id: ’#{externalId}’
};
var token = jwt.sign(payload, ’#{yourSecret}’);
Python
Installez python-jose:
pip install python-jose
Puis générez un token en utilisant le secret partagé :
from jose import jwt
var payload = {
’name’: ’#{customerName}’,
’email’: ’#{customerEmail}’,
’iat’: #{timestamp},
’external_id’: ’#{externalId}’
}
token = jwt.encode(payload, ’#{yourSecret}’
PHP
Téléchargez PHP-JWT:
composer require firebase/php-jwt
Puis générez un token en utilisant le secret partagé :
use \Firebase\JWT\JWT;
$payload = {
’name’ => ’#{customerName}’ ,
’email’ => ’#{customerEmail}’,
’iat’ => #{timestamp},
’external_id’ => ’#{externalId}’
};
$token = JWT::encode($payload, ’#{yourSecret}’);
Elixir
Ajoutez « json_web_token_ex » à votre fichier « mix.exs » :
defp deps do [{:json_web_token, "~> 0.2"}] end
Puis générez un token en utilisant le secret partagé :
data = %{
name: "#{customerName}",
email: "#{customerEmail}",
iat: "#{timestamp}",
external_id: "#{externalId}"
}
options = %{ key: "#{yourSecret}" }
jwt = JsonWebToken.sign data, options
Déconnexion
Si vous voulez déconnecter le visiteur authentifié, vous devez utiliser l’API Javascript zE.logout Javascript. Pour en savoir plus au sujet de l’API, cliquez ici.
À propos de l’expérience des visiteurs authentifiés pour les agents
Quand un agent commence à chatter avec un visiteur authentifié, certains éléments du tableau de bord Chat sont mis à jour.
D’abord, l’agent peut voir que le visiteur est authentifié grâce à la coche d’authentification verte qui s’affiche sur l’avatar du visiteur.
L’agent remarquera aussi qu’il ne peut pas modifier le nom ou l’adresse e-mail du visiteur, car ces données proviennent des informations envoyées via l’API Javascript.
Enfin, si un agent interdit un visiteur authentifié, le visiteur ne peut accéder au widget Chat sur aucun appareil ni dans aucun navigateur.
À propos de l’expérience du widget pour les visiteurs authentifiés
Les visiteurs authentifiés auront également une expérience légèrement différente du widget Chat. D’abord, leurs informations sont en lecture seule et ils ne peuvent pas les modifier via le widget ou l’API Javascript.
Deuxièmement, quand un visiteur est authentifié, les sessions de chat en cours sont synchronisées sur tous les appareils. Cela permet au visiteur de changer d’ordinateur ou de navigateur et de poursuivre se session de chat en cours, ce qui n’est pas possible à l’heure actuelle.
Troisièmement, les visiteurs authentifiés ne peuvent pas se faire dans une fenêtre contextuelle, car il est impossible de vérifier leur identité via la fenêtre contextuelle (car l’expérience est hébergée sur notre domaine, zopim.com).
Enfin, le visiteur authentifié peut voir ses anciennes conversations dans le widget en faisant défiler le journal de chats. Pour en savoir plus au sujet de la prise en charge de l’historique des conversations pour les visiteurs authentifiés, cliquez ici.
0 Commentaires
Vous devez vous connecter pour laisser un commentaire.