Afficher du contenu personnalisé en fonction de l’authentification de l’utilisateur et des données de profil.
La personnalisation adapte votre documentation à chaque utilisateur lorsqu’il est connecté. Par exemple, vous pouvez préremplir ses clés d’API, afficher du contenu spécifique à son plan ou à son rôle, ou masquer les sections dont il n’a pas besoin.
Renseignez automatiquement les champs du bac à sable d’API avec des valeurs propres à chaque utilisateur en renvoyant, dans vos données utilisateur, des noms de champs identiques. Pour que le préremplissage automatique fonctionne, les noms de champs de vos données utilisateur doivent correspondre exactement à ceux du bac à sable d’API.
Affichez du contenu dynamique en fonction d’informations sur l’utilisateur, comme son nom, son abonnement ou son organisation, à l’aide de la variable user.
Limitez les pages visibles par vos utilisateurs en ajoutant des champs groups au frontmatter de vos pages. Par défaut, chaque page est visible pour tous les utilisateurs.Les utilisateurs ne verront que les pages associées aux groups auxquels ils appartiennent.
Signaler un code incorrect
Copier
Demander à l'IA
---title: "Gestion de vos utilisateurs"description: "Ajouter et supprimer des utilisateurs de votre organisation"groups: ["admin"]---
Lors de l’implémentation de la personnalisation, votre système renvoie les données utilisateur dans un format spécifique qui permet de personnaliser le contenu. Ces données peuvent être envoyées soit sous forme d’objet JSON brut, soit encapsulées dans un JWT signé, selon votre méthode de négociation. La structure des données est identique dans les deux cas.
Durée d’expiration de la session en secondes depuis l’époque Unix. Si l’utilisateur charge une page après ce délai, ses données stockées sont automatiquement supprimées et il doit se réauthentifier.
Pour les handshakes JWT : Cela diffère de la claim exp du JWT, qui détermine le moment où un JWT est considéré comme invalide. Par mesure de sécurité, définissez la claim exp du JWT sur une courte durée (10 secondes ou moins). Utilisez expiresAt pour la durée réelle de la session (de quelques heures à plusieurs semaines).
Liste des groupes auxquels l’utilisateur appartient. Les pages dont le champ groups dans leur frontmatter correspond sont visibles par cet utilisateur.Exemple : Un utilisateur avec groups: ["admin", "engineering"] peut accéder aux pages étiquetées avec le groupe admin ou engineering.
Données personnalisées accessibles dans votre contenu MDX via la variable user. Utilisez ces données pour une personnalisation dynamique dans toute votre documentation.Exemple simple :
Welcome back, {user.firstName}! Your {user.plan} plan includes...
Avec les données d’exemple de user, le rendu serait : Welcome back, Ronan! Your Enterprise plan includes…Rendu conditionnel avancé :
Signaler un code incorrect
Copier
Demander à l'IA
Authentication is an enterprise feature. { user.org === undefined ? <>To access this feature, first create an account at the <a href="https://dashboard.mintlify.com/login">Mintlify dashboard</a>.</> : user.org.plan !== 'enterprise' ? <>You are currently on the ${user.org.plan ?? 'free'} plan. See <a href="https://mintlify.com/pricing">our pricing page</a> for information about upgrading.</> : <>To request this feature for your enterprise org, contact your admin.</>}
Les informations dans user ne sont disponibles que pour les utilisateurs connectés. Pour les utilisateurs déconnectés, la valeur de user sera {}. Pour éviter que la page ne plante pour les utilisateurs déconnectés, utilisez toujours l’optional chaining sur vos champs user. Par exemple, {user.org?.plan}.
Valeurs propres à l’utilisateur qui préremplissent les champs du bac à sable d’API. Cela fait gagner du temps aux utilisateurs en remplissant automatiquement leurs données lors des tests d’API.Exemple :
Si un utilisateur effectue des requêtes sur un sous-domaine spécifique, vous pouvez envoyer { server: { subdomain: 'foo' } } en tant que champ apiPlaygroundInputs. Cette valeur sera préremplie sur toute page d’API utilisant le champ subdomain.
Les champs header, query et cookie ne seront préremplis que s’ils font partie de votre schéma de sécurité OpenAPI. Si un champ se trouve dans les sections Authorization ou Server, il sera prérempli. Créer un paramètre d’en-tête standard nommé Authorization n’activera pas cette fonctionnalité.
Saisissez l’URL de votre flux de connexion existant et sélectionnez Enregistrer les modifications.
Sélectionnez Generate new key.
Stockez votre key en toute sécurité à un emplacement accessible par votre backend.
2
Integrate Mintlify personalization into your login flow.
Modifiez votre flux de connexion existant pour inclure ces étapes après la connexion de l’utilisateur :
Créez un JWT contenant les informations de l’utilisateur connecté au format User. Consultez la section User data format ci-dessus pour plus d’informations.
Signez le JWT avec la clé secrète, en utilisant l’algorithme ES256.
Créez une URL de redirection vers votre documentation, en incluant le JWT comme hash.
Votre documentation est hébergée sur docs.foo.com. Vous souhaitez que votre documentation soit distincte de votre Dashboard (ou vous n’avez pas de Dashboard) et activer la personnalisation.Générez un secret JWT. Puis créez un endpoint de connexion à https://foo.com/docs-login qui lance un flux de connexion vers votre documentation.Après vérification des identifiants de l’utilisateur :
Générez un JWT avec les données utilisateur au format de Mintlify.
Signez le JWT et redirigez vers https://docs.foo.com#{SIGNED_JWT}.
Pour rediriger les utilisateurs vers des sections spécifiques après connexion, utilisez ce format d’URL : https://docs.foo.com/page#jwt={SIGNED_JWT}&anchor={ANCHOR}.Exemple :
Scopes : permissions à demander. Copiez la chaîne de scope entière (par exemple, pour un scope comme provider.users.docs, copiez l’intégralité de provider.users.docs). Doit correspondre aux scopes de l’endpoint configuré à la première étape.
Token URL : votre endpoint d’échange de jeton OAuth.
Info API URL : endpoint pour récupérer les données utilisateur à des fins de personnalisation. Créé à la première étape.
Votre documentation est hébergée sur foo.com/docs et vous disposez d’un serveur OAuth existant qui prend en charge le flux PKCE. Vous souhaitez personnaliser votre documentation en fonction des données utilisateur.Créez un endpoint d’informations utilisateur à api.foo.com/docs/user-info, qui requiert un jeton d’accès OAuth avec le scope provider.users.docs et renvoie les données personnalisées de l’utilisateur :
Dashboard sur un sous-domaine, documentation sur un sous-domaine
Vous avez un Dashboard sur dash.foo.com, qui utilise une authentification de session basée sur des cookies. Les routes de votre API de Dashboard sont hébergées sur dash.foo.com/api. Vous souhaitez configurer la personnalisation pour votre documentation hébergée sur docs.foo.com.Processus de configuration :
Créez l’endpointdash.foo.com/api/docs/user-info qui identifie les utilisateurs via l’authentification de session et renvoie leurs données utilisateur.
Ajoutez les en-têtes CORS pour cette route uniquement :
Dashboard sur un sous-domaine, documentation à la racine
Vous avez un Dashboard sur dash.foo.com, qui utilise une authentification de session basée sur des cookies. Les routes de votre API de Dashboard sont hébergées sur dash.foo.com/api. Vous souhaitez configurer la personnalisation pour votre documentation hébergée sur foo.com/docs.Processus de configuration :
Créez l’endpointdash.foo.com/api/docs/user-info qui identifie les utilisateurs via l’authentification de session et renvoie leurs données utilisateur.
Ajoutez les en-têtes CORS pour cette route uniquement :
Access-Control-Allow-Origin : https://foo.com
Access-Control-Allow-Credentials : true
Configurez l’URL de l’API dans les paramètres d’authentification : https://dash.foo.com/api/docs/user-info.
Vous avez un Dashboard sur foo.com/dashboard, qui utilise une authentification de session basée sur des cookies. Les routes de votre API de Dashboard sont hébergées sur foo.com/api. Vous souhaitez configurer la personnalisation pour votre documentation hébergée sur foo.com/docs.Processus de configuration :
Créez l’endpointfoo.com/api/docs/user-info qui identifie les utilisateurs via l’authentification de session et renvoie leurs données utilisateur.
Configurez l’URL de l’API dans les paramètres d’authentification : https://foo.com/api/docs/user-info
Aucune configuration CORS n’est nécessaire puisque le Dashboard et la documentation partagent le même domaine.