auth_token.go
package models
import (
"time"
"github.com/readysite/readysite/pkg/database"
)
// AuthToken stores hashed magic link tokens for passwordless auth.
type AuthToken struct {
database.Model
TokenHash string
Email string
ExpiresAt time.Time
Used bool
}
// CleanupExpiredTokens deletes used and expired tokens to prevent table bloat.
func CleanupExpiredTokens() {
DB.Exec("DELETE FROM AuthToken WHERE Used = 1 OR ExpiresAt < ?", time.Now())
}