Sobes.tech
Junior — Middle

Hogyan lehet kezelni a kód megerősítésének várakozási idejét az azonosítás során?

sobes.tech MI

Válasz az MI-től

A Go nyelvben az autentikáció során a kód megerősítésének várakozási idejének kezelése általában a kontextusok (context.Context) vagy időzítők (time.Timer, time.After) segítségével valósul meg. Például létrehozhatunk egy időkorlátos kontextust, amely megszakítja a műveletet, ha a megerősítés nem érkezik meg időben:

ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()

// A megerősítés várakozásának indítása külön goroutine-ben
select {
case <-confirmationChan:
    // Kód megerősítve
case <-ctx.Done():
    // Időkorlát lejárt, hibakezelés
}

Szintén használhatjuk a time.After-t egy egyszerű időkorlát esetén:

select {
case <-confirmationChan:
    // Kód megerősítve
case <-time.After(30 * time.Second):
    // Időkorlát
}

Így az időkorlátok lehetővé teszik a maximális várakozási idő ellenőrzését a kód megerősítéséhez, és helyes módon kezelik az olyan helyzeteket, amikor a felhasználó nem írja be időben a kódot.