O Grant de Código de Autorização OAuth 2.0 é um método de autenticação comum usado por muitos serviços, incluindo o GitHub, para permitir que aplicações de terceiros acessem dados do usuário sem compartilhar senhas. Implementá-lo e depurá-lo no Apidog pode ser uma habilidade valiosa.
OAuth 2.0
OAuth 2.0 é um protocolo de autorização amplamente utilizado que permite o acesso de terceiros a recursos protegidos sem exigir credenciais de usuário. Envolve quatro papéis principais, que são Proprietário do Recurso, Cliente, Servidor de Autorização e Servidor de Recurso.

Fluxos de Autorização Comuns
O protocolo OAuth 2.0 implementa a autorização por meio de vários fluxos de autorização. Os fluxos de autorização comuns incluem:
- Grant de Código de Autorização: O cliente redireciona o usuário para o servidor de autorização. Após o login do usuário e a concessão de permissão, o servidor de autorização retorna um código de autorização ao cliente. O cliente então troca o código de autorização junto com suas credenciais por um token de acesso.
- Grant de Código de Autorização com PKCE (Proof Key for Code Exchange): Semelhante ao fluxo padrão de código de autorização, mas o cliente aprimora a segurança usando PKCE (Proof Key for Code Exchange).
- Grant de Credenciais de Senha do Proprietário do Recurso: O proprietário do recurso fornece diretamente seu nome de usuário e senha ao cliente. O cliente então usa essas credenciais para solicitar um token de acesso do servidor de autorização.
- Grant de Credenciais do Cliente: O cliente solicita diretamente um token de acesso do servidor de autorização usando suas próprias credenciais. Este fluxo é adequado para casos em que o próprio cliente precisa acessar os recursos.
- Grant Implícito: Usado para obter um token de acesso diretamente do cliente em uma aplicação baseada em navegador. Este fluxo é tipicamente usado para aplicações de frontend web.
Como Configurar o OAuth 2.0 do Github (ID do Cliente e Segredo do Cliente)
Passo 1: Crie o aplicativo e obtenha o ID do cliente e o segredo do cliente
Para obter o ID do cliente e a chave do cliente, primeiro precisamos criar um aplicativo. Clique neste link para criar um no Github: https://github.com/settings/applications/new, e então preencha sua "URL da Homepage" aqui Nome de domínio, se for depuração local, você pode preencher seu serviço local, como http://127.0.0.1:8000.
Preencha seu endereço de callback em "URL de callback de autorização", que pode ser seu nome de domínio ou seu endereço de callback local, como http://127.0.0.1:8000/callback.
Após preencher a configuração relevante, clique em "Registrar aplicativo" para criá-lo.

Após a criação do aplicativo, o ID do cliente e o segredo do cliente são gerados. A chave do cliente precisa ser gerada separadamente. Clique em "Gerar um novo segredo do cliente" para gerar uma chave.

Passo 2: Obter token de acesso
Quando o primeiro passo acima estiver pronto, podemos solicitar um token de acesso (Token). Vamos demonstrar este passo através do Apidog. Apidog é uma excelente ferramenta de depuração e gerenciamento de API.

Você pode obter o token de acesso diretamente no Apidog. Se você ainda não tiver o Apidog instalado, faça o download agora!
- Crie um novo projeto HTTP no Apidog e abra-o, depois crie um novo pedido no projeto e selecione a opção [Modificar Documento -> Auth -> OAuth 2.0 -> .

2. Configure o ID do cliente, a chave do cliente e o endereço de redirecionamento
O modo de autorização padrão selecionado na página OAuth 2.0 no Apidog é Código de Autorização (modo de código de autorização).
Como o OAuth 2.0 do Github também usa o Código de Autorização (modo de código de autorização), você não precisa alternar aqui.

Então encontre o ID do Cliente, Segredo do Cliente e URL de Callback na parte inferior da página. O ID do cliente (ID do Cliente), segredo do cliente (Segredo do Cliente) e endereço de callback configurado (URL de Callback) serão obtidos do serviço OAuth 2.0 do Github.
Basta preenchê-lo. Os parâmetros específicos são as configurações em "Passo 1" acima.

3. Configure o endereço de solicitação do código de autorização
De acordo com a documentação oficial do Github, ao realizar a autenticação OAuth 2.0, o endereço de solicitação (Auth URL) do código de autorização é:
https://github.com/login/oauth/authorize
Basta preencher o endereço de solicitação deste código de autorização na URL de Autorização. Podemos entender esse endereço como a página de autorização de login.
Esta página será aberta quando o estado de login for verificado pela primeira vez (é uma janela no cliente), e então você será solicitado a preencher o nome de usuário e a senha.

Geralmente, ao construir manualmente a página de autorização de login, alguns parâmetros precisam ser carregados após o endereço de autorização.
No entanto, no Apidog, os parâmetros após a URL geralmente não precisam ser carregados, apenas o caminho antes do ponto de interrogação? é suficiente, porque os outros parâmetros exigidos já foram configurados separadamente em outras opções.
Claro, se você quiser carregar alguns parâmetros de consulta, também pode adicioná-los. Clique no ícone atrás da caixa de entrada para adicionar:

Podemos também expandir a opção "Mais" e preencher os valores dos parâmetros que precisam ser preenchidos nas opções correspondentes. Por exemplo, em "Escopo", você pode preencher as permissões necessárias, como read:user, user:email etc.
Você pode ter mais permissões para outros Você pode visitar o módulo de permissões da documentação de ajuda do Github para visualizá-las. Preencha o estado na opção "Estado". O estado é para prevenir falsificação de solicitação entre sites.

4. Configure o endereço de solicitação do token de acesso
De acordo com a documentação oficial do Github, para solicitar um token de acesso, a URL solicitada é:
https://github.com/login/oauth/access_token
Basta preencher o endereço acima no campo de entrada da URL do Token de Acesso na página OAuth 2.0 do Apidog.

5. Obter o token de acesso para o serviço OAuth 2.0 do Github
Após a configuração dos itens acima, você pode clicar no botão "Obter Token" para obter o token de acesso.
Depois de clicar, se for a primeira vez que você faz login, uma janela aparecerá para você autorizar. Basta preencher o nome de usuário e a senha da sua conta do Github.

Após preencher o nome de usuário e a senha, você será solicitado a confirmar a autorização ou realizar a verificação em duas etapas. Após a verificação, clique em Confirmar.
Após a autorização ser concluída, o token de acesso será obtido automaticamente e exibido na página. Ao mesmo tempo, outras informações retornadas pelo Github também serão analisadas, como mostrado na figura abaixo. "Expirado" é exibido aqui porque o Github não retornou o atributo expires_in para nós, então não podemos fazer um julgamento. No entanto, esse Token é utilizável. Vamos iniciar uma solicitação abaixo.

Passo 3: Acessar recursos abertos com base no Token
Depois de obter o token de acesso (Token), você pode usar esse token de acesso para chamar os recursos abertos do Github. Você pode visualizar os recursos abertos específicos na API do Github.
Por exemplo, a seguinte API obtém informações do usuário. Se a sua interface não retornar, você precisa verificar se você tem permissões. Como mencionado na Seção 3 do "Passo 2", basta configurá-lo em Escopo.

Ao enviar uma solicitação, o Apidog irá automaticamente anexar o Token ao cabeçalho de autorização da solicitação, adicioná-lo ao Bearer e enviá-lo. Se você quiser carregar o Token na URL, você também pode modificar a "Adicionar Localização" do Token nos itens de configuração da página e selecionar "Parâmetros de Consulta".

Resumo
OAuth 2.0 é um framework de autorização que permite que aplicações de terceiros obtenham tokens de acesso sem exigir que o usuário forneça um nome de usuário e senha. O processo de autorização usado pelo GitHub é o "processo de autorização de código de autorização", e seu processo de autorização pode ser depurado e configurado no Apidog.