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.
-
No canto superior direito de qualquer página do GitHub, clique na foto do seu perfil.
-
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:
- Clique em Suas organizações.
- À direita da organização, clique em Configurações.
-
Na barra lateral esquerda, clique em Configurações do desenvolvedor.
-
Na barra lateral esquerda, clique em GitHub Apps .
-
Ao lado de GitHub App que você deseja modificar, clique em Editar.
-
Na barra lateral de configurações GitHub Apps, clique em Recursos Opcionais.
-
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
-
Faça uma solicitação
POST
para essa URL, juntamente com os seguintes parâmetros de consulta:http(s)://HOSTNAME/login/oauth/access_token
Parâmetro de consulta Tipo Descrição client_id
string
Necessá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_secret
string
Necessá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_type
string
Necessário. O valor deve ser "refresh_token". refresh_token
string
Necessário. O token de atualização que você recebeu quando gerou um token de acesso do usuário. -
O GitHub dará uma resposta que inclui os seguintes parâmetros:
Parâmetro de resposta Type Descrição access_token
string
O token de acesso do usuário. O token começa com ghu_
.expires_in
integer
O 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_token
string
O 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_in
integer
O 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).scope
string
Os 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_type
string
O tipo de token. O valor sempre será bearer
.