diff --git a/src/components/LoginDialog.vue b/src/components/LoginDialog.vue index b106ed1..a8c0929 100644 --- a/src/components/LoginDialog.vue +++ b/src/components/LoginDialog.vue @@ -20,14 +20,16 @@ v-for="provider in providers" :key="provider.id" @click="handleLogin(provider)" - class="w-full flex items-center gap-3 px-4 py-3 border rounded-lg hover:bg-accent transition-colors" - :style="{ borderColor: provider.color + '20' }" + class="w-full flex items-center gap-3 px-4 py-3 border rounded-lg transition-colors hover:bg-accent" + :style="{ + borderColor: (provider.color || '#666') + }" > -
- +
+
-
{{ provider.name }}
+
{{ provider.displayName || provider.name }}
{{ provider.description }}
@@ -96,7 +98,9 @@ const getProviderIcon = (icon) => { const loadProviders = async () => { try { const response = await apiClient.getOAuthProviders() - providers.value = response.data || [] + const list = response.data || [] + // 后端已去除 order 字段,保持原顺序 + providers.value = list } catch (error) { console.error('Failed to load OAuth providers:', error) toast.error('无法加载登录方式', { @@ -142,8 +146,11 @@ const handleLogin = (provider) => { authWindow.close() } + const display = event.data.providerName || event.data.provider + const color = event.data.providerColor toast.success('登录成功', { - description: `已通过 ${event.data.provider} 登录` + description: `已通过 ${display} 登录`, + style: color ? { borderLeft: `4px solid ${color}` } : undefined }) // 调用成功回调 @@ -180,11 +187,13 @@ const handleLogin = (provider) => { // 检查localStorage中是否有token(降级方案) const token = localStorage.getItem('auth_token') - const authProvider = localStorage.getItem('auth_provider') + const authProvider = localStorage.getItem('auth_provider_name') || localStorage.getItem('auth_provider') + const providerColor = localStorage.getItem('auth_provider_color') if (token) { toast.success('登录成功', { - description: `已通过 ${authProvider} 登录` + description: `已通过 ${authProvider || '账户'} 登录`, + style: providerColor ? { borderLeft: `4px solid ${providerColor}` } : undefined }) // 调用成功回调 @@ -211,7 +220,7 @@ const handleLogin = (provider) => { description: '请重试' }) } - }, 30000) + }, 300000) } onMounted(() => { diff --git a/src/composables/useOAuthCallback.js b/src/composables/useOAuthCallback.js index f01d598..d6e5996 100644 --- a/src/composables/useOAuthCallback.js +++ b/src/composables/useOAuthCallback.js @@ -13,7 +13,7 @@ export function useOAuthCallback() { const accountStore = useAccountStore() const handleOAuthCallback = async () => { - const { token, provider, success, error } = route.query + const { token, provider, color, success, error } = route.query // 检查是否是OAuth回调 if (!success && !error) { @@ -25,14 +25,15 @@ export function useOAuthCallback() { try { // 保存token到localStorage localStorage.setItem('auth_token', token) - localStorage.setItem('auth_provider', provider) + localStorage.setItem('auth_provider', provider) + if (color) localStorage.setItem('auth_provider_color', color) // 登录到store await accountStore.login(token) // 显示成功提示 toast.success('登录成功', { - description: `已通过 ${provider} 登录` + description: `已通过 ${provider} 登录`, }) // 清除URL参数 @@ -51,7 +52,7 @@ export function useOAuthCallback() { window.opener.postMessage({ type: 'oauth_success', token, - provider + provider, }, window.location.origin) // 延迟关闭窗口,确保消息已发送 diff --git a/src/pages/index.vue b/src/pages/index.vue index 6af1694..aea5c23 100644 --- a/src/pages/index.vue +++ b/src/pages/index.vue @@ -418,9 +418,27 @@ onMounted(async () => { > + + + + 账户渠道:{{ accountStore.profile.providerInfo.displayName }} + @@ -447,6 +465,8 @@ onMounted(async () => { + +