🐛 Unsubscribe the stream after used the stream to validate code

This commit is contained in:
LittleSheep 2025-01-27 16:31:15 +08:00
parent e4ba72725e
commit 0dbc30d53c
2 changed files with 3 additions and 4 deletions

View File

@ -25,7 +25,7 @@ var (
) )
const ( const (
FactorOtpPrefix = "passport.otp." FactorOtpPrefix = "otp."
) )
func InitializeToNexus() error { func InitializeToNexus() error {
@ -70,7 +70,7 @@ func InitializeToNexus() error {
jetstreamCfg := &nats.StreamConfig{ jetstreamCfg := &nats.StreamConfig{
Name: "OTPs", Name: "OTPs",
Subjects: []string{FactorOtpPrefix + ">"}, Subjects: []string{fmt.Sprintf("%s>", FactorOtpPrefix)},
Storage: nats.MemoryStorage, Storage: nats.MemoryStorage,
MaxAge: 30 * time.Minute, MaxAge: 30 * time.Minute,
} }

View File

@ -124,8 +124,7 @@ func CheckFactor(factor models.AuthFactor, code string) error {
log.Error().Err(err).Msg("Error subscribing to subject when validating factor code...") log.Error().Err(err).Msg("Error subscribing to subject when validating factor code...")
return fmt.Errorf("error subscribing to subject: %v", err) return fmt.Errorf("error subscribing to subject: %v", err)
} }
// ChatGPT said the subscription will be reused, so we don't need to unsubscribe defer sub.Unsubscribe()
// defer sub.Unsubscribe()
msgs, err := sub.Fetch(1, nats.MaxWait(3*time.Second)) msgs, err := sub.Fetch(1, nats.MaxWait(3*time.Second))
if err != nil { if err != nil {