Просмотр исходного кода

♻️ refactor(config): 重构Agora配置获取方式

- 文档中更新Agora配置获取方式,从直接使用环境变量改为通过getGlobalConfig获取
- 服务器渲染文件中添加Agora相关配置到全局配置对象
- 全局配置类型定义中添加Agora相关配置项
- 提高配置安全性,统一配置访问方式
yourname 4 месяцев назад
Родитель
Сommit
b3027e1d96
3 измененных файлов с 27 добавлено и 9 удалено
  1. 11 9
      docs/stories/005.001.story.md
  2. 8 0
      src/server/renderer.tsx
  3. 8 0
      src/share/types.ts

+ 11 - 9
docs/stories/005.001.story.md

@@ -60,16 +60,18 @@ High - 新功能实现,增强用户体验
 
 ### Agora配置参数 [Source: docs/agora实时语音转录翻译参考文档.md]
 ```typescript
-// 使用环境变量安全配置(生产环境必须设置)
+// 使用全局配置安全访问(通过服务器端注入)
+import { getGlobalConfig } from '@/client/utils/utils';
+
 const AGORA_CONFIG = {
-  appId: process.env.AGORA_APP_ID,
-  primaryCert: process.env.AGORA_PRIMARY_CERT,
-  token: process.env.AGORA_TOKEN,
-  channel: process.env.AGORA_CHANNEL || '123',
-  key: process.env.AGORA_KEY,
-  secret: process.env.AGORA_SECRET,
-  sttJoinUrl: process.env.AGORA_STT_JOIN_URL || 'https://api.agora.io/v7/rtm/stt/join',
-  sttWsUrl: process.env.AGORA_STT_WS_URL || 'wss://api.agora.io/v7/rtm/stt/connect'
+  appId: getGlobalConfig('AGORA_APP_ID'),
+  primaryCert: getGlobalConfig('AGORA_PRIMARY_CERT'),
+  token: getGlobalConfig('AGORA_TOKEN'),
+  channel: getGlobalConfig('AGORA_CHANNEL') || '123',
+  key: getGlobalConfig('AGORA_KEY'),
+  secret: getGlobalConfig('AGORA_SECRET'),
+  sttJoinUrl: getGlobalConfig('AGORA_STT_JOIN_URL') || 'https://api.agora.io/v7/rtm/stt/join',
+  sttWsUrl: getGlobalConfig('AGORA_STT_WS_URL') || 'wss://api.agora.io/v7/rtm/stt/connect'
 };
 ```
 

+ 8 - 0
src/server/renderer.tsx

@@ -7,6 +7,14 @@ import process from 'node:process'
 const GLOBAL_CONFIG: GlobalConfig = {
   OSS_BASE_URL: process.env.OSS_BASE_URL || 'https://oss.d8d.fun',
   APP_NAME: process.env.APP_NAME || '多八多Aider',
+  AGORA_APP_ID: process.env.AGORA_APP_ID,
+  AGORA_PRIMARY_CERT: process.env.AGORA_PRIMARY_CERT,
+  AGORA_TOKEN: process.env.AGORA_TOKEN,
+  AGORA_CHANNEL: process.env.AGORA_CHANNEL,
+  AGORA_KEY: process.env.AGORA_KEY,
+  AGORA_SECRET: process.env.AGORA_SECRET,
+  AGORA_STT_JOIN_URL: process.env.AGORA_STT_JOIN_URL,
+  AGORA_STT_WS_URL: process.env.AGORA_STT_WS_URL,
 }
 
 // export const renderer = reactRenderer(({ children }) => {

+ 8 - 0
src/share/types.ts

@@ -2,6 +2,14 @@
 export interface GlobalConfig {
   OSS_BASE_URL: string;
   APP_NAME: string;
+  AGORA_APP_ID?: string;
+  AGORA_PRIMARY_CERT?: string;
+  AGORA_TOKEN?: string;
+  AGORA_CHANNEL?: string;
+  AGORA_KEY?: string;
+  AGORA_SECRET?: string;
+  AGORA_STT_JOIN_URL?: string;
+  AGORA_STT_WS_URL?: string;
 }
 
 // 认证上下文类型