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
|
state: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface GeminiOAuthCapabilities {
|
||||||
|
ai_studio_oauth_enabled: boolean
|
||||||
|
required_redirect_uris: string[]
|
||||||
|
}
|
||||||
|
|
||||||
export interface GeminiAuthUrlRequest {
|
export interface GeminiAuthUrlRequest {
|
||||||
proxy_id?: number
|
proxy_id?: number
|
||||||
project_id?: string
|
project_id?: string
|
||||||
@@ -45,4 +50,9 @@ export async function exchangeCode(payload: GeminiExchangeCodeRequest): Promise<
|
|||||||
return data
|
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 { useI18n } from 'vue-i18n'
|
||||||
import { useAppStore } from '@/stores/app'
|
import { useAppStore } from '@/stores/app'
|
||||||
import { adminAPI } from '@/api/admin'
|
import { adminAPI } from '@/api/admin'
|
||||||
|
import type { GeminiOAuthCapabilities } from '@/api/admin/gemini'
|
||||||
|
|
||||||
export interface GeminiTokenInfo {
|
export interface GeminiTokenInfo {
|
||||||
access_token?: string
|
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 {
|
return {
|
||||||
authUrl,
|
authUrl,
|
||||||
sessionId,
|
sessionId,
|
||||||
@@ -128,6 +138,7 @@ export function useGeminiOAuth() {
|
|||||||
resetState,
|
resetState,
|
||||||
generateAuthUrl,
|
generateAuthUrl,
|
||||||
exchangeAuthCode,
|
exchangeAuthCode,
|
||||||
buildCredentials
|
buildCredentials,
|
||||||
|
getCapabilities
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user