package usersession import "errors" // 公開 sentinel errors,便於 caller 用 errors.Is 比對。 var ( // ErrNoSession 表示指定 ID 對應的 session 不存在(從未 Create、已 Delete、或已被 CleanupExpired 清掉)。 ErrNoSession = errors.New("usersession: not found") // ErrSessionExpired 表示 session 雖存在但已逾時(idle 或 absolute)。 // 大多情境下 CleanupExpired 會先行移除,Get 直接回 ErrNoSession; // 少數時序下 Manager.GetSession 可能在比對 timeout 後主動回此 error,便於 caller 區分。 ErrSessionExpired = errors.New("usersession: expired") // ErrInvalidCookie 表示 cookie value 格式錯誤(缺 separator、欄位空、編碼失敗)。 ErrInvalidCookie = errors.New("usersession: invalid cookie") // ErrSignatureMismatch 表示 cookie HMAC 簽章驗證失敗,可能被竄改或使用錯的 SigningKey。 ErrSignatureMismatch = errors.New("usersession: signature mismatch") // ErrInvalidConfig 表示 CookieConfig 必填欄位缺漏(例如 SigningKey 為空)。 ErrInvalidConfig = errors.New("usersession: invalid config") // ErrSigningKeyTooShort 表示 SigningKey 長度不足 MinSigningKeyBytes(32 bytes)。 // HMAC-SHA256 安全建議 key 長度至少等於 hash output(32 bytes / 256 bits)。 ErrSigningKeyTooShort = errors.New("usersession: signing key must be at least 32 bytes") )