Authentification
Utilisez Docs Embed avec des sites nécessitant une authentification en transmettant des jetons visiteur ou en utilisant l’accès authentifié
Si votre documentation GitBook nécessite une authentification, Docs Embed a besoin d'un jeton visiteur GitBook pour accéder au contenu.
Il existe deux approches :
Transmettre le jeton directement (recommandé) - Initialisez l'intégration avec un jeton visiteur GitBook.
Utiliser la détection basée sur les cookies - Vérifiez la présence du jeton visiteur GitBook avant le chargement.
Approche 1 : transmettre le jeton directement (recommandé)
Lors de l'initialisation de l'intégration, transmettez le jeton visiteur GitBook comme visitor.token.
visitor.token n'est pas un jeton d'accès brut ni un jeton ID de votre fournisseur d'identité. C'est le jeton visiteur GitBook émis par GitBook pour l'accès authentifié à la documentation. Le your-jwt-token valeurs dans ces exemples représentent ce jeton émis par GitBook.
<script src="https://docs.company.com/~gitbook/embed/script.js?jwt_token=your-jwt-token"></script>
<script>
window.GitBook(
"init",
{ siteURL: "https://docs.company.com" },
{ visitor: { token: "your-jwt-token" } }
);
window.GitBook("show");
</script>import { createGitBook } from "@gitbook/embed";
const gitbook = createGitBook({
siteURL: "https://docs.company.com",
});
const iframe = document.createElement("iframe");
iframe.src = gitbook.getFrameURL({
visitor: {
token: "your-jwt-token",
unsignedClaims: { userId: "123", plan: "premium" },
},
});Sites basés sur OIDC
Docs Embed accepte le flux de jeton visiteur GitBook à l'aide de HS256. Vous ne pouvez pas modifier ni configurer cet algorithme pour accepter des jetons de fournisseur d'identité RS256.
Ne transmettez pas le jeton d'accès ou le jeton ID d'un fournisseur OIDC en tant que visitor.token. Les jetons Auth0 et Descope utilisant RS256 sont incompatibles, et Docs Embed les rejette en raison de leur algorithme de signature. Ne transmettez pas, ne re-signez pas et ne générez pas un jeton visiteur GitBook à partir d'un jeton de fournisseur d'identité.
Pour un site de documentation basé sur OIDC, utilisez ce flux :
Envoyez l'utilisateur vers l'URL de votre site de documentation protégé, par exemple
https://docs.example.com.Terminez la connexion OIDC interactive normale sur le site de documentation.
Après que GitBook a établi la session du site de documentation et stocke
gitbook-visitor-token, récupérez ce jeton.Transmettez le jeton avec l'approche basée sur les cookies ou sur le jeton direct sur cette page.
Ce flux nécessite une connexion préalable réussie au site de documentation. Il nécessite également le cookie requis et la disponibilité du domaine.
Docs Embed ne peut pas démarrer, rediriger ou terminer silencieusement l'échange d'autorisation OIDC du site de documentation. Si un visiteur authentifié pour la première fois doit accéder entièrement depuis l'intégration, il n'existe aucun chemin d'intégration pris en charge. Faites-le passer par une étape explicite de connexion au site de documentation avant de charger l'intégration authentifiée.
Approche 2 : détection basée sur les cookies
Si votre site de documentation stocke le jeton visiteur dans des cookies (comme gitbook-visitor-token), vous pouvez le vérifier avant de charger l'intégration.
Après qu'un utilisateur s'est connecté à votre site de documentation authentifié, GitBook stocke un jeton visiteur dans les cookies de son navigateur sous la clé gitbook-visitor-token. L'intégration a besoin de ce jeton pour récupérer le contenu de votre documentation.
Le flux :
L'utilisateur se connecte à votre site de documentation.
GitBook stocke le jeton visiteur dans les cookies du navigateur.
Votre application vérifie la présence du jeton.
Si le jeton existe, chargez l'intégration et transmettez le jeton.
Si le jeton n'existe pas, envoyez l'utilisateur sur votre site de documentation pour se connecter.
Extrait à copier-coller
Utilisez cet extrait uniquement après que l'utilisateur a terminé la connexion au site de documentation :
Remplacez docs.example.com par l'URL réelle de votre site de documentation.
Alternative : inviter les utilisateurs à se connecter
Si le jeton est manquant, envoyez l'utilisateur vers l'URL protégée du site de documentation. Cela lance le flux de connexion OIDC interactif pris en charge :
Lorsque vous utilisez le package NPM, vérifiez la présence du jeton avant l'initialisation :
Pour les applications React, affichez l'intégration de manière conditionnelle après que la connexion au site de documentation a créé le jeton visiteur :
Pièges courants
Utiliser un jeton de fournisseur d'identité – N'utilisez pas un jeton d'accès OIDC ni un jeton ID comme
visitor.token. Utilisez le jeton visiteur HS256 émis par GitBook après l'authentification au site de documentation.Chargement de l'intégration avant la connexion – Envoyez les visiteurs qui arrivent pour la première fois vers le site de documentation afin de terminer la connexion avant de charger le script ou les composants.
Le jeton ne persiste pas entre les domaines – Les cookies ne persistent pas entre différents domaines en raison des politiques de sécurité du navigateur. Votre application et la documentation doivent être sur le même domaine ou sous-domaine, ou bien vous devez transmettre le jeton directement.
Jeton expiré – Les jetons peuvent expirer. Si l'intégration renvoie des erreurs d'authentification, invitez les utilisateurs à se reconnecter.
Utilisation d'un mauvais nom de cookie – Le jeton est stocké comme
gitbook-visitor-token, pasgitbook-tokenou d'autres variantes.Ne pas transmettre le jeton à init/getFrameURL – Lorsque vous utilisez l'approche basée sur les cookies, assurez-vous de transmettre le jeton à
GitBook('init', ..., { visitor: { token } })ougetFrameURL({ visitor: { token } }).
Débogage
Pour vérifier que le jeton est présent, ouvrez la console de votre navigateur et exécutez :
Si cela renvoie undefined, l'utilisateur ne s'est pas encore connecté à votre documentation.
Étapes suivantes
Personnalisation de l'intégration – Ajouter des messages de bienvenue et des actions
Création d'outils personnalisés – Intégrer à vos API produit
Documentation Docs Embed – Guide complet d'intégration
Mis à jour
Ce contenu vous a-t-il été utile ?