Eu uso tokens de portador e de atualização no ktor conforme descrito aqui https://ktor.io/docs/client-bearer-auth.html
O que não é mencionado nos documentos é como o módulo de autenticação ktor se comporta quando uma atualização de token é necessária, mas o token de atualização também está expirado.
Gostaria de enviar o usuário para a página de login quando o token de atualização expirar, mas não sei como
HttpClient.kt
Você pode criar um manipulador de exceção personalizado ou usar o sistema de plugins do Ktor para interceptar falhas de autenticação. Quando o token de atualização expirar, acione a navegação para sua página de login por meio do sistema de navegação do seu aplicativo. A chave está retornando nulo no bloco refreshTokens quando a atualização falha, o que fará com que a autenticação falhe e pare novas tentativas de solicitação.
Detectar Token de Atualização Expirado:
O prazo de validade do token de atualização deve ser verificado idealmente no momento da tentativa de usá-lo para gerar um novo token de acesso. Isso pode envolver a verificação da assinatura do token e a verificação do seu carimbo de data/hora de validade. Responda apropriadamente:
Se o token de atualização for inválido ou expirado, o servidor deve responder com um 401 Unauthorized ou um código/mensagem de erro específico indicando o problema do token. Prompt Re-autenticação:
Ao receber a resposta de erro, o aplicativo cliente deve solicitar que o usuário faça login novamente. Invalide o Refresh Token:
Tokens de atualização expirados ou inválidos devem ser invalidados e removidos do banco de dados ou do armazenamento de tokens se você estiver usando um armazenamento persistente.
Configurar dependências Certifique-se de ter as dependências necessárias em seu build.gradle.kts ou pom.xml para autenticação.