feat/auth-hook: add post auth hook

This commit is contained in:
HEUDavid
2026-02-10 08:53:23 +08:00
parent d536110404
commit 8a565dcad8
2 changed files with 8 additions and 10 deletions

View File

@@ -78,4 +78,5 @@ func (ts *CodexTokenStorage) SaveTokenToFile(authFilePath string) error {
return fmt.Errorf("failed to write token to file: %w", err) return fmt.Errorf("failed to write token to file: %w", err)
} }
return nil return nil
} }

View File

@@ -11,6 +11,7 @@ import (
"strings" "strings"
"github.com/router-for-me/CLIProxyAPI/v6/internal/misc" "github.com/router-for-me/CLIProxyAPI/v6/internal/misc"
log "github.com/sirupsen/logrus"
) )
// GeminiTokenStorage stores OAuth2 token information for Google Gemini API authentication. // GeminiTokenStorage stores OAuth2 token information for Google Gemini API authentication.
@@ -57,35 +58,31 @@ func (ts *GeminiTokenStorage) SetMetadata(meta map[string]any) {
// - error: An error if the operation fails, nil otherwise // - error: An error if the operation fails, nil otherwise
func (ts *GeminiTokenStorage) SaveTokenToFile(authFilePath string) error { func (ts *GeminiTokenStorage) SaveTokenToFile(authFilePath string) error {
misc.LogSavingCredentials(authFilePath) misc.LogSavingCredentials(authFilePath)
ts.Type = "gemini" // Ensure type is set before merging/saving ts.Type = "gemini"
// Merge metadata using helper // Merge metadata using helper
data, errMerge := misc.MergeMetadata(ts, ts.Metadata) data, errMerge := misc.MergeMetadata(ts, ts.Metadata)
if errMerge != nil { if errMerge != nil {
return fmt.Errorf("failed to merge metadata: %w", errMerge) return fmt.Errorf("failed to merge metadata: %w", errMerge)
} }
// Create parent directory
if err := os.MkdirAll(filepath.Dir(authFilePath), os.ModePerm); err != nil { if err := os.MkdirAll(filepath.Dir(authFilePath), os.ModePerm); err != nil {
return fmt.Errorf("failed to create directory: %w", err) return fmt.Errorf("failed to create directory: %v", err)
} }
// Create file
f, err := os.Create(authFilePath) f, err := os.Create(authFilePath)
if err != nil { if err != nil {
return fmt.Errorf("failed to create file: %w", err) return fmt.Errorf("failed to create token file: %w", err)
} }
defer func() { defer func() {
_ = f.Close() if errClose := f.Close(); errClose != nil {
log.Errorf("failed to close file: %v", errClose)
}
}() }()
// Write to file
enc := json.NewEncoder(f) enc := json.NewEncoder(f)
enc.SetIndent("", " ") enc.SetIndent("", " ")
if err := enc.Encode(data); err != nil { if err := enc.Encode(data); err != nil {
return fmt.Errorf("failed to encode token to file: %w", err) return fmt.Errorf("failed to encode token to file: %w", err)
} }
return nil return nil
} }