feat(frontend): 添加 Gemini OAuth 能力查询 API
- 添加 GeminiOAuthCapabilities 类型定义 - 添加 getCapabilities API 函数 - useGeminiOAuth composable 导出 getCapabilities 方法
This commit is contained in:
@@ -11,6 +11,11 @@ export interface GeminiAuthUrlResponse {
|
||||
state: string
|
||||
}
|
||||
|
||||
export interface GeminiOAuthCapabilities {
|
||||
ai_studio_oauth_enabled: boolean
|
||||
required_redirect_uris: string[]
|
||||
}
|
||||
|
||||
export interface GeminiAuthUrlRequest {
|
||||
proxy_id?: number
|
||||
project_id?: string
|
||||
@@ -45,4 +50,9 @@ export async function exchangeCode(payload: GeminiExchangeCodeRequest): Promise<
|
||||
return data
|
||||
}
|
||||
|
||||
export default { generateAuthUrl, exchangeCode }
|
||||
export async function getCapabilities(): Promise<GeminiOAuthCapabilities> {
|
||||
const { data } = await apiClient.get<GeminiOAuthCapabilities>('/admin/gemini/oauth/capabilities')
|
||||
return data
|
||||
}
|
||||
|
||||
export default { generateAuthUrl, exchangeCode, getCapabilities }
|
||||
|
||||
@@ -2,6 +2,7 @@ import { ref } from 'vue'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useAppStore } from '@/stores/app'
|
||||
import { adminAPI } from '@/api/admin'
|
||||
import type { GeminiOAuthCapabilities } from '@/api/admin/gemini'
|
||||
|
||||
export interface GeminiTokenInfo {
|
||||
access_token?: string
|
||||
@@ -119,6 +120,15 @@ export function useGeminiOAuth() {
|
||||
}
|
||||
}
|
||||
|
||||
const getCapabilities = async (): Promise<GeminiOAuthCapabilities | null> => {
|
||||
try {
|
||||
return await adminAPI.gemini.getCapabilities()
|
||||
} catch (err: any) {
|
||||
// Capabilities are optional for older servers; don't block the UI.
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
authUrl,
|
||||
sessionId,
|
||||
@@ -128,6 +138,7 @@ export function useGeminiOAuth() {
|
||||
resetState,
|
||||
generateAuthUrl,
|
||||
exchangeAuthCode,
|
||||
buildCredentials
|
||||
buildCredentials,
|
||||
getCapabilities
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user