Funzionalità di personalizzazione
Precompilazione della chiave API
Contenuti MDX dinamici
user
.
Visibilità delle pagine
groups
al frontmatter delle pagine. Per impostazione predefinita, ogni pagina è visibile a qualsiasi utente.
Gli utenti vedranno solo le pagine dei groups
a cui appartengono.
Formato dei dati utente
Orario di scadenza della sessione in secondi dall’epoch. Se l’utente carica una pagina dopo questo momento, i suoi dati memorizzati vengono eliminati automaticamente e deve riautenticarsi.
Per gli handshake JWT: Questo campo è diverso dalla claim
exp
del JWT, che determina quando un JWT è considerato non valido. Imposta la claim exp
del JWT su una durata breve (10 secondi o meno) per motivi di sicurezza. Usa expiresAt
per la durata effettiva della sessione (da ore a settimane).Elenco dei gruppi a cui appartiene l’utente. Le pagine con
groups
corrispondenti nel frontmatter sono visibili a questo utente.Esempio: Un utente con groups: ["admin", "engineering"]
può accedere alle pagine etichettate con il gruppo admin
o engineering
.Dati personalizzati accessibili nel contenuto Utilizzo in Con i dati di
MDX
tramite la variabile user
. Usali per la personalizzazione dinamica in tutta la documentazione.Esempio di base:MDX
:user
dell’esempio, il risultato sarà: Bentornato, Ronan! Il tuo piano Enterprise include…Rendering condizionale avanzato:Le informazioni in
user
sono disponibili solo per gli utenti autenticati. Per gli utenti non autenticati, il valore di user
sarà {}
. Per evitare errori di runtime per gli utenti non autenticati, utilizza sempre l’optional chaining sui campi di user
. Ad esempio, {user.org?.plan}
.Valori specifici dell’utente che precompilano i campi dell’API playground. Fanno risparmiare tempo popolando automaticamente i dati dell’utente durante il test delle API.Esempio:Se un utente effettua richieste da un sottodominio specifico, puoi inviare
{ server: { subdomain: 'foo' } }
come campo apiPlaygroundInputs
. Questo valore verrà precompilato in qualsiasi pagina API che utilizza il valore subdomain
.I campi
header
, query
e cookie
verranno precompilati solo se fanno parte dello schema di sicurezza OpenAPI. Se un campo è nelle sezioni Authorization
o Server
, verrà precompilato. Creare un parametro header standard chiamato Authorization
non abilita questa funzionalità.Esempio di dati utente
Configurazione della personalizzazione
Prerequisiti
- Un sistema di login in grado di generare e firmare JWT
- Un servizio backend in grado di creare URL di reindirizzamento
Implementazione
1
Genera una chiave privata.
- Nel tuo dashboard, vai su Authentication.
- Seleziona Personalization.
- Seleziona JWT.
- Inserisci l’URL del flusso di login esistente e seleziona Save changes.
- Seleziona Generate new key.
- Conserva la chiave in modo sicuro, in un luogo accessibile dal tuo backend.
2
Integra la personalizzazione di Mintlify nel tuo flusso di login.
Modifica il flusso di login esistente per includere questi passaggi dopo l’accesso dell’utente:
- Crea un JWT contenente le informazioni dell’utente autenticato nel formato
User
. Consulta la sezione User data format per maggiori informazioni. - Firma il JWT con la chiave segreta, utilizzando l’algoritmo ES256.
- Crea un URL di reindirizzamento alla tua documentazione, includendo il JWT come hash.
Esempio
La tua documentazione è ospitata sudocs.foo.com
. Vuoi tenerla separata dal tuo dashboard (o non hai un dashboard) e abilitare la personalizzazione.Genera un secret per i JWT. Quindi crea un endpoint di login su https://foo.com/docs-login
che avvii un flusso di login verso la documentazione.Dopo aver verificato le credenziali dell’utente:- Genera un JWT con i dati utente nel formato di Mintlify.
- Firma il JWT e reindirizza a
https://docs.foo.com#{SIGNED_JWT}
.
Conservare gli anchor di pagina
Per reindirizzare gli utenti a sezioni specifiche dopo il login, usa questo formato di URL:https://docs.foo.com/page#jwt={SIGNED_JWT}&anchor={ANCHOR}
.Esempio:- URL originale:
https://docs.foo.com/quickstart#step-one
- URL di reindirizzamento:
https://docs.foo.com/quickstart#jwt={SIGNED_JWT}&anchor=step-one