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

@@ -11,6 +11,7 @@ import (
"strings"
"github.com/router-for-me/CLIProxyAPI/v6/internal/misc"
log "github.com/sirupsen/logrus"
)
// 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
func (ts *GeminiTokenStorage) SaveTokenToFile(authFilePath string) error {
misc.LogSavingCredentials(authFilePath)
ts.Type = "gemini" // Ensure type is set before merging/saving
ts.Type = "gemini"
// Merge metadata using helper
data, errMerge := misc.MergeMetadata(ts, ts.Metadata)
if errMerge != nil {
return fmt.Errorf("failed to merge metadata: %w", errMerge)
}
// Create parent directory
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)
if err != nil {
return fmt.Errorf("failed to create file: %w", err)
return fmt.Errorf("failed to create token file: %w", err)
}
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.SetIndent("", " ")
if err := enc.Encode(data); err != nil {
return fmt.Errorf("failed to encode token to file: %w", err)
}
return nil
}