34 lines
889 B
Go
34 lines
889 B
Go
|
package entity
|
||
|
|
||
|
import "time"
|
||
|
|
||
|
// BlacklistEntry represents a blacklisted JWT token
|
||
|
type BlacklistEntry struct {
|
||
|
JTI string `json:"jti"` // JWT ID (unique identifier)
|
||
|
UID string `json:"uid"` // User ID
|
||
|
TokenID string `json:"token_id"` // Token ID from original token
|
||
|
Reason string `json:"reason"` // Reason for blacklisting
|
||
|
ExpiresAt int64 `json:"expires_at"` // When the original token expires
|
||
|
CreatedAt int64 `json:"created_at"` // When it was blacklisted
|
||
|
}
|
||
|
|
||
|
// IsExpired checks if the blacklist entry is expired
|
||
|
func (b *BlacklistEntry) IsExpired() bool {
|
||
|
return b.ExpiresAt <= time.Now().Unix()
|
||
|
}
|
||
|
|
||
|
// Validate validates the blacklist entry
|
||
|
func (b *BlacklistEntry) Validate() error {
|
||
|
if b.JTI == "" {
|
||
|
return ErrInvalidJTI
|
||
|
}
|
||
|
if b.UID == "" {
|
||
|
return ErrInvalidUID
|
||
|
}
|
||
|
if b.TokenID == "" {
|
||
|
return ErrInvalidTokenID
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|