Sobes.tech
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.