Como entender o token de atualização - Amazon Cognito

Como entender o token de atualização

Você pode usar o token de atualização para recuperar novos tokens de ID e acesso. Por padrão, o token de atualização expira 30 dias depois que o usuário da aplicação fizer login no seu grupo de usuários. Ao criar uma aplicação para seu grupo de usuários, você pode definir a validade do token de atualização da aplicação em qualquer valor entre 60 minutos e 10 anos.

O Mobile SDK for iOS, Mobile SDK for Android, Amplify para iOS, Android e Flutter atualizarão automaticamente seu tokens de ID e de acesso se um token de atualização válido (não expirado) estiver presente. Os tokens de ID e de acesso têm uma validade mínima restante de dois minutos. Se o token de atualização tiver expirado, o usuário da aplicação precisará se reautenticar fazendo login novamente no grupo de usuários. Se o mínimo para o token de acesso e o token de ID estiver definido para 5 minutos, e você estiver usando o SDK, o token de atualização será usado continuamente para recuperar novos tokens de acesso e ID. Você verá o comportamento esperado em no mínimo 7 minutos ao invés de 5 minutos.

A conta do usuário em si nunca expira, desde que o usuário tenha feito login pelo menos uma vez antes do limite de tempo UnusedAccountValidityDays para novas contas.

Obter novos tokens de acesso e identidade com um token de atualização

Use a API ou a UI hospedada para iniciar a autenticação de tokens de atualização.

Para usar o token de atualização a fim de obter novos tokens de ID e acesso com a API do grupo de usuários, use as operações de API AdminInitiateAuth ou InitiateAuth. Transmita REFRESH_TOKEN_AUTH para o parâmetro AuthFlow. Na propriedade AuthParameters de AuthFlow, transmita o token de atualização do usuário como o valor de "REFRESH_TOKEN". O Amazon Cognito retorna novos tokens de ID e acesso depois que sua solicitação à API passar por todos os desafios.

nota

Para usar a API de grupos de usuários do Amazon Cognito a fim de atualizar tokens para uma solicitação InitiateAuth com um fluxo REFRESH_TOKEN_AUTH. Esse método de manipulação de tokens na aplicação não afeta as sessões de interface do usuário hospedadas pelos usuários. A resposta da API emite novos tokens de ID e acesso, mas não renova o cookie da sessão de interface do usuário hospedada.

Você também pode enviar tokens de atualização para o Endpoint de token em um grupo de usuários em que configurou um domínio. No corpo da solicitação, inclua um valor grant_type de refresh_token e um valor refresh_token do token de atualização do usuário.

Como revogar tokens de atualização

Você pode revogar tokens de atualização que pertencem a um usuário. Para obter mais informações sobre revogação de tokens, consulte Encerrar sessões de usuário com revogação de token.

nota

A revogação do token de atualização revogará todos os tokens de ID e acesso que o Amazon Cognito emitiu de solicitações de atualização com esse token.

Os usuários podem sair de todos os dispositivos em que estão conectados quando você revoga todos os tokens dos usuários usando as operações de API GlobalSignOut e AdminUserGlobalSignOut. Depois que o usuário é desconectado, os seguintes efeitos acontecem.

  • O token de atualização do usuário não pode obter novos tokens para ele.

  • O token de acesso do usuário não pode fazer solicitações de API autorizadas por token.

  • O usuário precisa se autenticar novamente para obter novos tokens. Como os cookies de sessão de interface de usuário hospedados não expiram automaticamente, o usuário pode se autenticar novamente com um cookie de sessão, sem nenhuma solicitação adicional de credenciais. Depois de desconectar os usuários de interface de usuário hospedados, redirecione-os para o Endpoint de logout, em que o Amazon Cognito limpará o cookie da sessão.

Com os tokens de atualização, você pode manter as sessões dos usuários na aplicação por um longo tempo. Com o tempo, talvez os usuários queiram desautorizar alguns dispositivos nos quais fizeram login, atualizando continuamente a sessão. Para desconectar o usuário em um único dispositivo, revogue o token de atualização. Quando o usuário quiser se desconectar de todas as sessões autenticadas, gere uma solicitação de API GlobalSignOut. A aplicação pode oferecer ao usuário uma opção como Sair de todos os dispositivosGlobalSignOut aceita o token de acesso válido/inalterado, não expirado e não revogado de um usuário. Como essa API é autorizada por token, um usuário não pode usá-la para iniciar a saída de outro usuário.

No entanto, é possível gerar uma solicitação de API AdminUserGlobalSignOut que você autoriza com suas credenciais da AWS para desconectar qualquer usuário de todos os seus dispositivos. A aplicação administradora precisa chamar essa operação da API com credenciais de desenvolvedor da AWS e transmitir o ID do grupo de usuários e o nome do usuário como parâmetros. A API AdminUserGlobalSignOut pode retirar qualquer usuário no grupo de usuários.

Para obter mais informações sobre solicitações que você pode autorizar com credenciais da AWS ou com o token de acesso de um usuário, consulte Operações de API autenticadas e não autenticadas de grupos de usuários do Amazon Cognito.