Recursos de personalização
Preenchimento automático de chave de API
Conteúdo dinâmico em MDX
user
.
Visibilidade da página
groups
ao frontmatter das suas páginas. Por padrão, todas as páginas são visíveis para todos os usuários.
Os usuários só verão as páginas dos groups
aos quais pertencem.
Formato de dados do usuário
Tempo de expiração da sessão em segundos desde a época Unix. Se o usuário carregar uma página após esse tempo, seus dados armazenados serão automaticamente excluídos e ele deverá se autenticar novamente.
Para handshakes com JWT: Isso difere da claim
exp
do JWT, que determina quando um JWT é considerado inválido. Defina a claim exp
do JWT para uma duração curta (10 segundos ou menos) por segurança. Use expiresAt
para o tempo real da sessão (de horas a semanas).Lista de grupos aos quais o usuário pertence. Páginas com
groups
correspondentes em seu frontmatter ficam visíveis para esse usuário.Exemplo: Usuário com groups: ["admin", "engineering"]
pode acessar páginas marcadas com os grupos admin
ou engineering
.Dados personalizados acessíveis no seu conteúdo Uso em Com os dados de
MDX
via a variável user
. Use isso para personalização dinâmica em toda a sua documentação.Exemplo básico:MDX
:user
do exemplo, isso seria renderizado como: Welcome back, Ronan! Your Enterprise plan includes…Renderização condicional avançada:As informações em
user
estão disponíveis apenas para usuários autenticados. Para usuários não autenticados, o valor de user
será {}
. Para evitar que a página quebre para usuários não autenticados, sempre use optional chaining nos campos de user
. Por exemplo, {user.org?.plan}
.Valores específicos do usuário que pré-preenchem os campos do Playground de API. Economiza tempo ao preencher automaticamente os dados do usuário durante os testes de APIs.Exemplo:Se um usuário fizer solicitações em um subdomínio específico, você pode enviar
{ server: { subdomain: 'foo' } }
como um campo apiPlaygroundInputs
. Esse valor será pré-preenchido em qualquer página de API que utilize o valor de subdomain
.Os campos
header
, query
e cookie
só serão pré-preenchidos se fizerem parte do seu esquema de segurança OpenAPI. Se um campo estiver nas seções Authorization
ou Server
, ele será pré-preenchido. Criar um parâmetro de header padrão chamado Authorization
não habilita esse recurso.Exemplo de dados de usuário
Configurando a personalização
Pré-requisitos
- Um sistema de login capaz de gerar e assinar JWTs
- Um serviço de backend capaz de criar URLs de redirecionamento
Implementação
1
Gerar uma chave privada.
- No seu dashboard, acesse Authentication.
- Selecione Personalization.
- Selecione JWT.
- Insira a URL do seu fluxo de login existente e selecione Save changes.
- Selecione Generate new key.
- Armazene sua chave com segurança em um local acessível pelo seu backend.
2
Integrar a personalização do Mintlify ao seu fluxo de login.
Modifique seu fluxo de login existente para incluir estas etapas após o login do usuário:
- Crie um JWT contendo as informações do usuário autenticado no formato
User
. Consulte a seção User data format acima para mais informações. - Assine o JWT com a chave secreta, usando o algoritmo ES256.
- Crie uma URL de redirecionamento de volta para a sua documentação, incluindo o JWT como hash.
Exemplo
Sua documentação está hospedada emdocs.foo.com
. Você quer que ela seja separada do seu dashboard (ou você não tem um dashboard) e deseja habilitar a personalização.Gere um segredo de JWT. Em seguida, crie um endpoint de login em https://foo.com/docs-login
que inicie um fluxo de login para a sua documentação.Após verificar as credenciais do usuário:- Gere um JWT com os dados do usuário no formato do Mintlify.
- Assine o JWT e redirecione para
https://docs.foo.com#{SIGNED_JWT}
.
Preservando âncoras de página
Para redirecionar usuários para seções específicas após o login, use este formato de URL:https://docs.foo.com/page#jwt={SIGNED_JWT}&anchor={ANCHOR}
.Exemplo:- URL original:
https://docs.foo.com/quickstart#step-one
- URL de redirecionamento:
https://docs.foo.com/quickstart#jwt={SIGNED_JWT}&anchor=step-one