readysite / hosting / models / auth_token.go
458 B
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())
}
← Back