mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-03 04:50:52 +08:00
fix(gemini): gate callback prompt on project_id
This commit is contained in:
@@ -58,14 +58,19 @@ func DoLogin(cfg *config.Config, projectID string, options *LoginOptions) {
|
|||||||
promptFn := options.Prompt
|
promptFn := options.Prompt
|
||||||
if promptFn == nil {
|
if promptFn == nil {
|
||||||
promptFn = defaultProjectPrompt()
|
promptFn = defaultProjectPrompt()
|
||||||
options.Prompt = promptFn
|
}
|
||||||
|
|
||||||
|
trimmedProjectID := strings.TrimSpace(projectID)
|
||||||
|
callbackPrompt := promptFn
|
||||||
|
if trimmedProjectID == "" {
|
||||||
|
callbackPrompt = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
loginOpts := &sdkAuth.LoginOptions{
|
loginOpts := &sdkAuth.LoginOptions{
|
||||||
NoBrowser: options.NoBrowser,
|
NoBrowser: options.NoBrowser,
|
||||||
ProjectID: strings.TrimSpace(projectID),
|
ProjectID: trimmedProjectID,
|
||||||
Metadata: map[string]string{},
|
Metadata: map[string]string{},
|
||||||
Prompt: promptFn,
|
Prompt: callbackPrompt,
|
||||||
}
|
}
|
||||||
|
|
||||||
authenticator := sdkAuth.NewGeminiAuthenticator()
|
authenticator := sdkAuth.NewGeminiAuthenticator()
|
||||||
@@ -84,7 +89,7 @@ func DoLogin(cfg *config.Config, projectID string, options *LoginOptions) {
|
|||||||
geminiAuth := gemini.NewGeminiAuth()
|
geminiAuth := gemini.NewGeminiAuth()
|
||||||
httpClient, errClient := geminiAuth.GetAuthenticatedClient(ctx, storage, cfg, &gemini.WebLoginOptions{
|
httpClient, errClient := geminiAuth.GetAuthenticatedClient(ctx, storage, cfg, &gemini.WebLoginOptions{
|
||||||
NoBrowser: options.NoBrowser,
|
NoBrowser: options.NoBrowser,
|
||||||
Prompt: promptFn,
|
Prompt: callbackPrompt,
|
||||||
})
|
})
|
||||||
if errClient != nil {
|
if errClient != nil {
|
||||||
log.Errorf("Gemini authentication failed: %v", errClient)
|
log.Errorf("Gemini authentication failed: %v", errClient)
|
||||||
@@ -99,7 +104,7 @@ func DoLogin(cfg *config.Config, projectID string, options *LoginOptions) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
selectedProjectID := promptForProjectSelection(projects, strings.TrimSpace(projectID), promptFn)
|
selectedProjectID := promptForProjectSelection(projects, trimmedProjectID, promptFn)
|
||||||
projectSelections, errSelection := resolveProjectSelections(selectedProjectID, projects)
|
projectSelections, errSelection := resolveProjectSelections(selectedProjectID, projects)
|
||||||
if errSelection != nil {
|
if errSelection != nil {
|
||||||
log.Errorf("Invalid project selection: %v", errSelection)
|
log.Errorf("Invalid project selection: %v", errSelection)
|
||||||
|
|||||||
Reference in New Issue
Block a user