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.