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

Nota: 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, confira "Como expirar tokens de acesso de usuário para servidor para Aplicativos do GitHub".

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 obter mais informações, confira "Como gerar um token de acesso do usuário para um GitHub App".

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 usá-lo, é possível regenerar um token de acesso do usuário e atualizar o token enviando usuários por meio do fluxo do aplicativo Web ou do fluxo do dispositivo. Para obter mais informações, confira "Como gerar um token de acesso do usuário para um GitHub App".

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

Quando você cria seu aplicativo, a expiração de tokens de acesso do usuário é habilitada, a menos que você opte por recusar. Para obter mais informações, confira "Registrar 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.
  3. Na barra lateral esquerda, clique em Configurações do desenvolvedor.

  4. Na barra lateral esquerda, clique em GitHub Apps .

  5. Ao lado de GitHub App que você deseja modificar, clique em Editar.

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

  7. 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 ponto de extremidade DELETE /applications/CLIENT_ID/token. Para obter mais informações, 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_idstringNecessário. A ID do cliente do GitHub App. A ID do cliente é diferente da ID do aplicativo. Encontre a ID do aplicativo na página de configurações do aplicativo.
    client_secretstringNecessário. O segredo do cliente para seu GitHub App. Você pode gerar um segredo do cliente na página de configurações do aplicativo.
    grant_typestringNecessário. O valor deve ser "refresh_token".
    refresh_tokenstringNecessá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á 15811200 (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.