O Apidog permite que você proteja sua documentação de API publicada com autenticação personalizada. Este guia orienta você na configuração de uma página de login personalizada que se integra ao seu sistema de autenticação existente usando JWT (JSON Web Token).
Acesse as configurações de visibilidade do site de documentação, selecione Página de login personalizada e preencha os dois campos a seguir:
Segredo JWT: Usado para verificar a assinatura do token. Ele deve ser o mesmo segredo que seu backend usa ao emitir JWTs. Você precisa gerar esse segredo por conta própria.
URL de login: Quando os usuários acessarem o site de documentação online, eles serão redirecionados para esta URL. Você deve hospedar uma página de login neste endereço e implementar a autenticação e a geração de tokens no seu backend.
Esta página de login não é fornecida pelo Apidog — você precisa criar e hospedar a sua própria.
JWT (JSON Web Token) é um padrão aberto para autenticação de usuários. Seu sistema de login deve seguir o fluxo abaixo:
1.
Um usuário visita o site de documentação online publicado pelo Apidog (por exemplo, https://xxxxx.apidog.io);
2.
O sistema o redireciona automaticamente para a página de login configurada por você (por exemplo, http://localhost:3000);
3.
O usuário insere suas credenciais e envia o formulário;
4.
Seu backend verifica as credenciais do usuário;
5.
Após a autenticação bem-sucedida, seu backend gera um JWT assinado usando o segredo configurado por você (por exemplo, pJRdFC3amihQdWbHvUXNZG9WzYdEGHao);
6.
Em seguida, redirecione o usuário de volta para o site de documentação (por exemplo, https://xxxxx.apidog.io) e inclua o token como um parâmetro de consulta chamado auth_token, conforme mostrado abaixo.
7.
O Apidog validará automaticamente o token. Se a validação for bem-sucedida, o usuário poderá acessar o conteúdo da documentação.
Qual stack de tecnologia posso usar para a página de login?
Não há restrições. Desde que seu backend possa lidar com requisições de login POST e retornar uma URL contendo auth_token, funcionará. Node.js, PHP, Python, Go etc. são todos compatíveis.