mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-28 12:04:44 +08:00
feat/auth-hook: add post auth hook
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user