Skip to main content

Atualizar tokens de acesso do usuário

Para aplicar a rotação regular do token e reduzir o impacto de um token comprometido, configure seu GitHub App para usar tokens de acesso do usuário que expiram.

Sobre tokens de acesso que expiram

Observação

Os tokens de acesso do usuário que expiram são, atualmente, um recurso opcional e estão sujeitos a alterações. Para obter mais informações, consulte Tokens de acesso de usuário para servidor que expiram para GitHub Apps.

Para aplicar a rotação regular do token e reduzir o impacto de um token comprometido, configure seu GitHub App para usar tokens de acesso do usuário que expiram. Se o aplicativo usar tokens de acesso do usuário que expiram, você receberá um token de atualização ao gerar um token de acesso do usuário. O token de acesso do usuário expira após oito horas e o token de atualização expira após seis meses. Para saber mais, confira Gerando um token de acesso do usuário para um aplicativo GitHub.

Você pode usar o token de atualização para gerar um novo token de acesso do usuário e um novo token de atualização. Depois que você usar um token de atualização, ele e o token de acesso de usuário antigo não funcionarão mais.

Se o token de atualização expirar antes de ser utilizado, é possível regenerar um token de acesso do usuário e um novo token de atualização direcionando os usuários pelo fluxo de aplicativo web ou pelo fluxo de dispositivo. Para saber mais, confira Gerando um token de acesso do usuário para um aplicativo GitHub.

Configurar seu aplicativo para usar tokens de acesso do usuário que expiram

Quando você cria seu aplicativo, a expiração dos tokens de acesso do usuário é habilitada, a menos que você opte por desativá-la. Para saber mais, confira Registrando um aplicativo GitHub. Você também pode definir essa configuração após a criação do aplicativo.

  1. No canto superior direito de qualquer página do GitHub, clique na foto do seu perfil.

  2. Acesse as configurações da sua conta.

    • Para um aplicativo de propriedade de uma conta pessoal, clique em Configurações.
    • Para um aplicativo de propriedade de uma organização:
      1. Clique em Suas organizações.
      2. À direita da organização, clique em Configurações.
    • Para um aplicativo de propriedade de uma empresa:
      1. Se você usar Enterprise Managed Users, clique em Sua empresa para ir diretamente para as configurações da conta corporativa.
      2. Se você usar contas pessoais, clique em Suas empresas e, à direita da empresa, clique em Configurações.
  3. Navegue até as configurações GitHub App.

    • Para um aplicativo pertencente a uma conta pessoal ou a uma organização:
      1. Na barra lateral esquerda, clique em Developer settings e clique em GitHub Apps.
    • Para um aplicativo de propriedade de uma empresa:
      1. Na barra lateral esquerda, em "Configurações", clique em GitHub Apps.
  4. Ao lado de GitHub App que você deseja modificar, clique em Editar.

  5. Na barra lateral de configurações GitHub Apps, clique em Recursos Opcionais.

  6. Ao lado de "Validade do token de usuário para servidor", clique em Aceitar ou em Recusar. Essa configuração pode levar alguns segundos para ser aplicada.

    GitHub recomenda que você aceite esse recurso para melhorar a segurança.

Se você optar por usar tokens de acesso do usuário que expiram depois de já ter gerado tokens de acesso do usuário, os tokens de acesso de usuário gerados anteriormente não expirarão. Você pode excluir esses tokens usando o endpoint DELETE /applications/CLIENT_ID/token. Para saber mais, confira Pontos de extremidade da API REST para autorizações de OAuth.

Atualizar um token de acesso do usuário com um token de atualização

  1. Faça uma solicitação POST para essa URL, juntamente com os seguintes parâmetros de consulta: https://github.com/login/oauth/access_token

    Parâmetro de consultaTipoDescrição
    client_idstring
           **Obrigatório.** A ID do cliente do GitHub App. A ID do cliente é diferente da ID do aplicativo. Você pode encontrar o ID do cliente na página de configurações do seu aplicativo.
    

    client_secret | string | Obrigatório, a menos que o token de acesso do usuário tenha sido gerado usando o fluxo do dispositivo. O segredo do cliente do GitHub App. grant_type | string | Obrigatório. O valor deve ser "refresh_token". refresh_token | string | Obrigatório. O token de atualização que você recebeu quando gerou um token de acesso do usuário.

  2. O GitHub dará uma resposta que inclui os seguintes parâmetros:

    Parâmetro de respostaTypeDescrição
    access_tokenstringO token de acesso do usuário. O token começa com ghu_.
    expires_inintegerO número de segundos até a expiração do access_token. Se você desabilitar a expiração de tokens de acesso do usuário, esse parâmetro será omitido. O valor sempre será 28800 (oito horas).
    refresh_tokenstringO token de atualização. Se você desabilitar a expiração de tokens de acesso do usuário, esse parâmetro será omitido. O token começa com ghr_.
    refresh_token_expires_inintegerO número de segundos até a expiração do refresh_token. Se você desabilitar a expiração de tokens de acesso do usuário, esse parâmetro será omitido. O valor sempre será 15897600 (seis meses).
    scopestringOs escopos que o token tem. Esse valor sempre será uma cadeia de caracteres vazia. Ao contrário de um token OAuth tradicional, o token de acesso do usuário é limitado às permissões que o seu aplicativo e o usuário têm.
    token_typestringO tipo de token. O valor sempre será bearer.