Initial commit: Open sourcing all of the Maple Open Technologies code.

This commit is contained in:
Bartlomiej Mika 2025-12-02 14:33:08 -05:00
commit 755d54a99d
2010 changed files with 448675 additions and 0 deletions

View file

@ -0,0 +1,37 @@
package site
import (
"crypto/rand"
"encoding/base64"
"go.uber.org/zap"
)
// GenerateVerificationTokenUseCase generates a verification token for domain verification
type GenerateVerificationTokenUseCase struct {
logger *zap.Logger
}
// ProvideGenerateVerificationTokenUseCase creates a new GenerateVerificationTokenUseCase
func ProvideGenerateVerificationTokenUseCase(
logger *zap.Logger,
) *GenerateVerificationTokenUseCase {
return &GenerateVerificationTokenUseCase{
logger: logger,
}
}
// Execute generates a cryptographically secure verification token
func (uc *GenerateVerificationTokenUseCase) Execute() (string, error) {
b := make([]byte, 16) // 16 bytes = 128 bits
if _, err := rand.Read(b); err != nil {
uc.logger.Error("failed to generate random bytes", zap.Error(err))
return "", err
}
token := base64.RawURLEncoding.EncodeToString(b)
verificationToken := "mvp_" + token // mvp = maplepress verify
uc.logger.Info("verification token generated")
return verificationToken, nil
}