feat: util for generating client credentials

This commit is contained in:
2025-05-25 16:40:58 +02:00
parent 14b37c2220
commit 52870cb541
2 changed files with 26 additions and 0 deletions

9
internal/util/client.go Normal file
View File

@ -0,0 +1,9 @@
package util
func GenerateClientID() (string, error) {
return generateRandomStringURLSafe(16)
}
func GenerateClientSecret() (string, error) {
return generateRandomStringURLSafe(32)
}

17
internal/util/generate.go Normal file
View File

@ -0,0 +1,17 @@
package util
import (
"crypto/rand"
"encoding/base64"
"fmt"
)
// generateRandomStringURLSafe generates a base64 URL-safe random string of n bytes.
func generateRandomStringURLSafe(n int) (string, error) {
bytes := make([]byte, n)
_, err := rand.Read(bytes)
if err != nil {
return "", fmt.Errorf("failed to generate random bytes: %w", err)
}
return base64.RawURLEncoding.EncodeToString(bytes), nil
}