Junior — Middle
Como gerir o tempo limite de espera pela confirmação do código na autenticação?
sobes.tech IA
Resposta da IA
No Go, a gestão do tempo limite de espera pela confirmação do código durante a autenticação é geralmente implementada usando contextos (context.Context) ou temporizadores (time.Timer, time.After). Por exemplo, pode criar um contexto com um tempo limite que cancela a operação se a confirmação não chegar a tempo:
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
// Iniciar a espera de confirmação numa goroutine separada
select {
case <-confirmationChan:
// Código confirmado
case <-ctx.Done():
// Tempo limite atingido, tratar erro
}
Também pode usar time.After para um tempo limite simples:
select {
case <-confirmationChan:
// Código confirmado
case <-time.After(30 * time.Second):
// Tempo limite
}
Desta forma, os tempos limite permitem controlar o tempo máximo de espera pela confirmação do código e tratar corretamente as situações em que o utilizador não consegue inserir o código a tempo.