fix(auth): handle credential file creation in persistCredential
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -105,13 +106,21 @@ func persistCredential(cred *Credential) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var doc map[string]any
|
||||||
raw, err := os.ReadFile(filePath)
|
raw, err := os.ReadFile(filePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
if !os.IsNotExist(err) {
|
||||||
}
|
return err
|
||||||
var doc map[string]any
|
}
|
||||||
if err := json.Unmarshal(raw, &doc); err != nil {
|
// File doesn't exist yet (cold start) — create from scratch
|
||||||
return err
|
if mkdirErr := os.MkdirAll(filepath.Dir(filePath), 0700); mkdirErr != nil {
|
||||||
|
return fmt.Errorf("create credential dir: %w", mkdirErr)
|
||||||
|
}
|
||||||
|
doc = make(map[string]any)
|
||||||
|
} else {
|
||||||
|
if err := json.Unmarshal(raw, &doc); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
oauth, _ := doc["claudeAiOauth"].(map[string]any)
|
oauth, _ := doc["claudeAiOauth"].(map[string]any)
|
||||||
if oauth == nil {
|
if oauth == nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user