From c65bfa39e4e1bcb98659174ffa6a7394223e1902 Mon Sep 17 00:00:00 2001 From: xudaotutou <13435638964@163.com> Date: Thu, 20 Feb 2025 18:07:09 +0800 Subject: [PATCH] perf: sms env --- .../account/AccountCenter/index.tsx | 2 +- .../src/pages/api/platform/getAuthConfig.ts | 6 +-- frontend/desktop/src/services/backend/sms.ts | 18 +++---- frontend/desktop/src/services/enable.ts | 3 +- frontend/desktop/src/types/system.ts | 52 +++++++++---------- 5 files changed, 40 insertions(+), 41 deletions(-) diff --git a/frontend/desktop/src/components/account/AccountCenter/index.tsx b/frontend/desktop/src/components/account/AccountCenter/index.tsx index 8d70dd22dda0..0f311a0c1f4e 100644 --- a/frontend/desktop/src/components/account/AccountCenter/index.tsx +++ b/frontend/desktop/src/components/account/AccountCenter/index.tsx @@ -299,7 +299,7 @@ export default function Index(props: Omit) { } /> )} - {conf.authConfig?.idp.sms.enabled && conf.authConfig.idp.sms.email.enabled && ( + {conf.authConfig?.idp.sms.enabled && conf.authConfig.idp.email.enabled && ( {t('common:email')}} RightElement={ diff --git a/frontend/desktop/src/pages/api/platform/getAuthConfig.ts b/frontend/desktop/src/pages/api/platform/getAuthConfig.ts index 8aeebb90fe37..bd01a7cac76b 100644 --- a/frontend/desktop/src/pages/api/platform/getAuthConfig.ts +++ b/frontend/desktop/src/pages/api/platform/getAuthConfig.ts @@ -32,11 +32,11 @@ function genResAuthClientConfig(conf: AuthConfigType) { enabled: !!conf.idp.sms?.enabled, ali: { enabled: !!conf.idp.sms?.ali?.enabled - }, - email: { - enabled: !!conf.idp.sms?.email?.enabled } }, + email: { + enabled: !!conf.idp.email?.enabled + }, github: { enabled: !!conf.idp.github?.enabled, proxyAddress: conf.idp.github?.proxyAddress || '', diff --git a/frontend/desktop/src/services/backend/sms.ts b/frontend/desktop/src/services/backend/sms.ts index e208168097c5..a84d49a2d6db 100644 --- a/frontend/desktop/src/services/backend/sms.ts +++ b/frontend/desktop/src/services/backend/sms.ts @@ -9,7 +9,7 @@ import * as Util from '@alicloud/tea-util'; import nodemailer from 'nodemailer'; const getTransporter = () => { if (!global.nodemailer) { - const emailConfig = global.AppConfig.desktop.auth.idp.sms?.email; + const emailConfig = global.AppConfig.desktop.auth.idp.email; if (!emailConfig) throw Error('email transporter config error'); const transporter = nodemailer.createTransport({ pool: true, @@ -65,8 +65,8 @@ export const smsReq = async (phoneNumbers: string) => { } if (_result.body.code !== 'OK') { throw new Error(` - ${_result.body.message} - ${phoneNumbers}, + ${_result.body.message} + ${phoneNumbers}, ${new Date()}`); } return _result; @@ -77,7 +77,7 @@ export const smsReq = async (phoneNumbers: string) => { return code; }; export const emailSmsReq = async (email: string) => { - const emailConfig = global.AppConfig.desktop.auth.idp.sms?.email; + const emailConfig = global.AppConfig.desktop.auth.idp.email; if (!emailConfig) throw Error('config error'); const code = Math.floor(Math.random() * 900000 + 100000).toString(); @@ -101,7 +101,7 @@ export const emailSmsReq = async (email: string) => { background-color: #f0f0f0; text-align: center; } - + .container { max-width: 400px; margin: 50px auto; @@ -110,17 +110,17 @@ export const emailSmsReq = async (email: string) => { border-radius: 5px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } - + h2 { color: #3498db; } - + .verification-code { font-size: 24px; color: #333; margin-bottom: 20px; } - + .button { padding: 10px 20px; background-color: #3498db; @@ -129,7 +129,7 @@ export const emailSmsReq = async (email: string) => { border-radius: 5px; cursor: pointer; } - + .button:hover { background-color: #2980b9; } diff --git a/frontend/desktop/src/services/enable.ts b/frontend/desktop/src/services/enable.ts index 4cd4da938137..2a650da533ec 100644 --- a/frontend/desktop/src/services/enable.ts +++ b/frontend/desktop/src/services/enable.ts @@ -7,8 +7,7 @@ export const enableGithub = () => global.AppConfig.desktop.auth.idp.github?.enab export const enableSms = () => global.AppConfig.desktop.auth.idp.sms?.enabled || false; export const enablePhoneSms = () => enableSms() && !!global.AppConfig.desktop.auth.idp.sms?.ali?.enabled; -export const enableEmailSms = () => - enableSms() && !!global.AppConfig.desktop.auth.idp.sms?.email?.enabled; +export const enableEmailSms = () => !!global.AppConfig.desktop.auth.idp.email?.enabled; export const enableWechat = () => global.AppConfig.desktop.auth.idp.wechat?.enabled || false; export const enableGoogle = () => global.AppConfig.desktop.auth.idp.google?.enabled || false; export const enableSignUp = () => global.AppConfig.desktop.auth.signUpEnabled || false; diff --git a/frontend/desktop/src/types/system.ts b/frontend/desktop/src/types/system.ts index dac507ced713..2704631a701c 100644 --- a/frontend/desktop/src/types/system.ts +++ b/frontend/desktop/src/types/system.ts @@ -133,18 +133,30 @@ export type AuthConfigType = { accessKeyID: string; accessKeySecret?: string; }; - email?: { - enabled: boolean; - host: string; - port: number; - user: string; - password: string; - }; + }; + email?: { + enabled: boolean; + host: string; + port: number; + user: string; + password: string; }; }; }; -export type AuthClientConfigType = DeepRequired< +export type AuthClientConfigType = { + idp: { + sms: { + enabled: boolean; + ali: { + enabled: boolean; + }; + }; + email: { + enabled: boolean; + }; + }; +} & DeepRequired< OmitPathArr< AuthConfigType, [ @@ -156,8 +168,8 @@ export type AuthClientConfigType = DeepRequired< 'idp.github.clientSecret', 'idp.wechat.clientSecret', 'idp.google.clientSecret', - 'idp.sms.ali', - 'idp.sms.email', + 'idp.sms', + 'idp.email', 'idp.oauth2.clientSecret', 'jwt', 'billingUrl', @@ -165,19 +177,7 @@ export type AuthClientConfigType = DeepRequired< 'cloudVitrualMachineUrl' ] > -> & { - idp: { - sms: { - enabled: boolean; - ali: { - enabled: boolean; - }; - email: { - enabled: boolean; - }; - }; - }; -}; +>; export type JwtConfigType = { internal?: string; @@ -292,11 +292,11 @@ export const DefaultAuthClientConfig: AuthClientConfigType = { enabled: false, ali: { enabled: false - }, - email: { - enabled: false } }, + email: { + enabled: false + }, oauth2: { enabled: false, callbackURL: '',