Escopo de Limitações
Há uma limitação maior de escopos que devemos estar cientes: você não faz uma refinação de acesso apenas para certos repositórios. Se você fornecer acesso para qualquer repositório privado, todos os outros repositórios também serão acessados.
É provável que GitHub irá mudar a maneira de como os escopos trabalham e abordam algumas dessas questões. O que é interessante sobre como o OAuth trabalha é que suporta mudanças que você simplesmente precisa pedir um novo token com o escopo modificado, caso contrário, a autenticação da aplicação seguirá imutável.
Seja cuidadoso com os escopos que você pedir quando construir um serviço ou aplicação. Usuários são (certamente) paranoicos sobre os dados deles que você está manipulando, e avaliará sua aplicação com base nos escopos solicitados.
Se eles não acham que você precisa daquele escopo, tenha certeza de removê-las da lista que fornece ao Github ao autorizar e considere escalar para escopos maiores despois que alguns usuários confiarem em você.
Escalonamento de Escopo
Você pode pedir um escopo em um momento limitado, e depois pedir um escopo maior. Por exemplo, quando um usuário acessar sua aplicação pela a primeira vez, você deve ter apenas o escopo do usuário para criar um objeto de usuário dentro do seu serviço, e apenas quando sua aplicação precisar da informação do repositório para um usuário, então o pedido escala os privilégios.
Nesse ponto o usuário precisa aprovar ou desaprovar seu pedido, tudo deve ser pedido antes (antes que você tenha um relacionamento com o usuário) e frequentemente há o abandono do usuário ao login. Vamos especificar a autenticação utilizando o OAuth.
Simplificando o OAuth
OAuth tem muitas variantes, mas o GitHub utiliza o OAuth2. Vamos ver o caminho que o OAuth2 faz:
1. A aplicação pede acesso
2. O serviço fornecedor (GitHub) pede autenticação: username e password
3. Se dois fatores de autenticação é habilitado, pede o código para o OTP (one-time password)
4. GitHub responde com um token dentro de um JSON no payload
5. A aplicação utiliza o OAuth token para fazer pedidos a API
Status do Código
O GitHub API utiliza o código de status HTTP para dizer informações de como o pedido foi processado. Se você utilizar um cliente básico com o cURL, será importante validar o código de status antes de olhar os dados.
Se você escrever seu próprio cliente, preste atenção no código de status antes de qualquer coisa. Se você é novo na API GitHub, é melhor ver o código da resposta completo até você ficar familiar com várias condições que pode causar erros durante um pedido.
Fonte: Building Tools with GitHub: Customize Your Workflow (English Edition)
Deixe um comentário