feat: Implement RSA key generation and initialization for JWT authentication

This commit is contained in:
2025-03-11 23:54:29 +00:00
parent b545392f27
commit 2e13d775fa
4 changed files with 203 additions and 14 deletions
+11 -2
View File
@@ -48,7 +48,7 @@ func LoadConfig() (*Config, error) {
// loadJWTConfig loads JWT configuration from environment
func loadJWTConfig(cfg *Config) error {
cfg.JWTConfig.Secret = getEnv("JWT_SECRET", "default-secret")
cfg.JWTConfig.Secret = getEnv("JWT_SECRET", "")
defaultDuration := 24 * time.Hour
durationStr := getEnv("JWT_TOKEN_DURATION", defaultDuration.String())
@@ -58,7 +58,7 @@ func loadJWTConfig(cfg *Config) error {
}
cfg.JWTConfig.TokenDuration = duration
keyGenerateStr := getEnv("JWT_KEY_GENERATE", "false")
keyGenerateStr := getEnv("JWT_KEY_GENERATE", "true")
keyGenerate, err := strconv.ParseBool(keyGenerateStr)
if err != nil {
return fmt.Errorf("invalid JWT_KEY_GENERATE: %w", err)
@@ -66,6 +66,15 @@ func loadJWTConfig(cfg *Config) error {
cfg.JWTConfig.KeyGenerate = keyGenerate
cfg.JWTConfig.KeyDir = getEnv("JWT_KEY_DIR", "./keys")
cfg.JWTConfig.PrivKeyFile = getEnv("JWT_PRIV_KEY_FILE", "jwt.key")
cfg.JWTConfig.PubKeyFile = getEnv("JWT_PUB_KEY_FILE", "jwt.key.pub")
keyBitsStr := getEnv("JWT_KEY_BITS", "2048")
keyBits, err := strconv.Atoi(keyBitsStr)
if err != nil {
return fmt.Errorf("invalid JWT_KEY_BITS: %w", err)
}
cfg.JWTConfig.KeyBits = keyBits
return nil
}