diff --git a/web/app/account/account-page/index.tsx b/web/app/account/account-page/index.tsx
index 1b4ebea78f..b3106ec111 100644
--- a/web/app/account/account-page/index.tsx
+++ b/web/app/account/account-page/index.tsx
@@ -178,6 +178,11 @@ export default function AccountPage() {
{userProfile.email}
+ {systemFeatures.enable_change_email && (
+ setShowUpdateEmail(true)}>
+ {t('common.operation.change')}
+
+ )}
setShowUpdateEmail(true)}>
{t('common.operation.change')}
diff --git a/web/service/common.ts b/web/service/common.ts
index 700cd4bf51..bdb8437da4 100644
--- a/web/service/common.ts
+++ b/web/service/common.ts
@@ -376,3 +376,15 @@ export const submitDeleteAccountFeedback = (body: { feedback: string; email: str
export const getDocDownloadUrl = (doc_name: string) =>
get<{ url: string }>('/compliance/download', { params: { doc_name } }, { silent: true })
+
+export const sendVerifyCode = (body: { email: string; phase: string; token?: string }) =>
+ post('/account/change-email', { body })
+
+export const verifyEmail = (body: { email: string; code: string; token: string }) =>
+ post('/account/validity', { body })
+
+export const resetEmail = (body: { new_email: string; token: string }) =>
+ post('/account/change-email/reset', { body })
+
+export const checkEmailExisted = (body: { email: string }) =>
+ post('/account/change-email/check-email-unique', { body })
diff --git a/web/types/feature.ts b/web/types/feature.ts
index 5787c2661f..088317d7fd 100644
--- a/web/types/feature.ts
+++ b/web/types/feature.ts
@@ -35,6 +35,7 @@ export type SystemFeatures = {
sso_enforced_for_web: boolean
sso_enforced_for_web_protocol: SSOProtocol | ''
enable_marketplace: boolean
+ enable_change_email: boolean
enable_email_code_login: boolean
enable_email_password_login: boolean
enable_social_oauth_login: boolean
@@ -70,6 +71,7 @@ export const defaultSystemFeatures: SystemFeatures = {
sso_enforced_for_web: false,
sso_enforced_for_web_protocol: '',
enable_marketplace: false,
+ enable_change_email: false,
enable_email_code_login: false,
enable_email_password_login: false,
enable_social_oauth_login: false,