O Apidog permite-lhe proteger a sua documentação de API publicada com autenticação personalizada. Este guia orienta-o na configuração de uma página de início de sessão personalizada que se integra com o seu sistema de autenticação existente utilizando JWT (JSON Web Token).
Aceda às definições de visibilidade do site de documentação, selecione Página de Início de Sessão Personalizada e preencha os dois campos seguintes:
Segredo JWT: Utilizado para verificar a assinatura do token. Deve ser o mesmo segredo que o seu backend utiliza ao emitir JWTs. Tem de gerar este segredo por conta própria.
URL de Início de Sessão: Quando os utilizadores acederem ao site de documentação online, serão redirecionados para este URL. Deve alojar uma página de início de sessão neste endereço e implementar a autenticação e a geração de tokens no seu backend.
Esta página de início de sessão não é fornecida pelo Apidog — tem de criar e alojar a sua própria página.
JWT (JSON Web Token) é uma norma aberta para autenticação de utilizadores. O seu sistema de início de sessão deve seguir o fluxo abaixo:
1.
Um utilizador visita o site de documentação online publicado pelo Apidog (por exemplo, https://xxxxx.apidog.io);
2.
O sistema redireciona-o automaticamente para a sua página de início de sessão configurada (por exemplo, http://localhost:3000);
3.
O utilizador introduz as suas credenciais e submete o formulário;
4.
O seu backend verifica as credenciais do utilizador;
5.
Após a autenticação bem-sucedida, o seu backend gera um JWT assinado utilizando o segredo configurado (por exemplo, pJRdFC3amihQdWbHvUXNZG9WzYdEGHao);
6.
Em seguida, redirecione o utilizador 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 utilizador poderá aceder ao conteúdo da documentação.
O fluxo de início de sessão é ilustrado no diagrama abaixo:
Que stack tecnológica posso utilizar para a página de início de sessão?
Não existem restrições. Desde que o seu backend consiga tratar pedidos POST de início de sessão e devolver um URL que contenha auth_token, funcionará. Node.js, PHP, Python, Go, etc., são todos suportados.