diff --git a/src/views/AgentChat/neuratalk/components/Chat/MCPChat.tsx b/src/views/AgentChat/neuratalk/components/Chat/MCPChat.tsx index a5533654..5f644e1a 100644 --- a/src/views/AgentChat/neuratalk/components/Chat/MCPChat.tsx +++ b/src/views/AgentChat/neuratalk/components/Chat/MCPChat.tsx @@ -159,7 +159,8 @@ export default function MCPChat() {

需要订阅才能使用 AI 助手

升级到高级版解锁所有功能

- 当前订阅等级:{user?.subscription_tier || '未知'} + 当前订阅等级:{user?.subscription_type || user?.subscription_tier || '未知'} + {user?.is_subscription_active && ' (活跃)'}

-
{user?.username}
-
{user?.subscription_tier}
+
{user?.username || user?.nickname}
+
+ {user?.subscription_type || user?.subscription_tier || 'Free'} + {user?.is_subscription_active && ' ✓'} +
diff --git a/src/views/AgentChat/neuratalk/lib/auth.ts b/src/views/AgentChat/neuratalk/lib/auth.ts index 13c55af1..5592f0e5 100644 --- a/src/views/AgentChat/neuratalk/lib/auth.ts +++ b/src/views/AgentChat/neuratalk/lib/auth.ts @@ -55,12 +55,24 @@ export async function checkAuth(): Promise { }; } - // 检查订阅权限 - 包括 max 用户和其他高级订阅 + // 检查订阅权限 - 注意:后端返回的是 subscription_type 而不是 subscription_tier + const userType = data.user.subscription_type?.toLowerCase() || ''; const userTier = data.user.subscription_tier?.toLowerCase() || ''; - const canAccessChat = ['max', 'premium', 'pro', 'enterprise', 'vip', 'plus'].includes(userTier) || - userTier !== 'free' && userTier !== '' && userTier !== 'basic'; + const subscriptionLevel = userType || userTier; // 兼容两个字段 - console.log('User subscription tier:', data.user.subscription_tier, 'Can access:', canAccessChat); + // 检查是否为付费用户 + const canAccessChat = + ['max', 'premium', 'pro', 'enterprise', 'vip', 'plus'].includes(subscriptionLevel) || + data.user.is_subscription_active === true || + data.user.subscription_status === 'active'; + + console.log('User subscription:', { + type: data.user.subscription_type, + tier: data.user.subscription_tier, + active: data.user.is_subscription_active, + status: data.user.subscription_status, + canAccess: canAccessChat + }); return { isAuthenticated: true,