diff --git a/apps/admin/app/(auth)/send-code.tsx b/apps/admin/app/(auth)/send-code.tsx
index ac65256..40c1598 100644
--- a/apps/admin/app/(auth)/send-code.tsx
+++ b/apps/admin/app/(auth)/send-code.tsx
@@ -37,10 +37,11 @@ export default function SendCode({ type, params }: SendCodeProps) {
};
const getPhoneCode = async () => {
- if (params.telephone && params.telephone_area_code) {
+ if (params.telephone && params.telephone_area_code && params.type) {
await sendSmsCode({
telephone: params.telephone,
telephone_area_code: params.telephone_area_code,
+ type: params.type,
});
setTargetDate(Date.now() + 60000);
}
diff --git a/apps/admin/services/admin/index.ts b/apps/admin/services/admin/index.ts
index e70a6dc..28e43f1 100644
--- a/apps/admin/services/admin/index.ts
+++ b/apps/admin/services/admin/index.ts
@@ -1,5 +1,5 @@
// @ts-ignore
-
+
// API 更新时间:
// API 唯一标识:
import * as announcement from './announcement';
diff --git a/apps/admin/services/admin/typings.d.ts b/apps/admin/services/admin/typings.d.ts
index 0beee2c..3923cc8 100644
--- a/apps/admin/services/admin/typings.d.ts
+++ b/apps/admin/services/admin/typings.d.ts
@@ -1401,6 +1401,7 @@ declare namespace API {
auth_type: string;
auth_identifier: string;
verified: boolean;
+ area_code?: string;
};
type UserBalanceLog = {
diff --git a/apps/admin/services/common/index.ts b/apps/admin/services/common/index.ts
index 73b3bda..61ba129 100644
--- a/apps/admin/services/common/index.ts
+++ b/apps/admin/services/common/index.ts
@@ -1,5 +1,5 @@
// @ts-ignore
-
+
// API 更新时间:
// API 唯一标识:
import * as auth from './auth';
diff --git a/apps/admin/services/common/typings.d.ts b/apps/admin/services/common/typings.d.ts
index dc07867..4d0ff86 100644
--- a/apps/admin/services/common/typings.d.ts
+++ b/apps/admin/services/common/typings.d.ts
@@ -348,6 +348,7 @@ declare namespace API {
};
type SendSmsCodeRequest = {
+ type: number;
telephone: string;
telephone_area_code: string;
};
@@ -594,6 +595,7 @@ declare namespace API {
auth_type: string;
auth_identifier: string;
verified: boolean;
+ area_code?: string;
};
type UserBalanceLog = {
diff --git a/apps/user/app/(main)/(user)/profile/third-party-accounts.tsx b/apps/user/app/(main)/(user)/profile/third-party-accounts.tsx
index 545fffc..a4f2010 100644
--- a/apps/user/app/(main)/(user)/profile/third-party-accounts.tsx
+++ b/apps/user/app/(main)/(user)/profile/third-party-accounts.tsx
@@ -123,7 +123,13 @@ function MobileBindDialog({
-
+
diff --git a/apps/user/app/auth/phone/login-form.tsx b/apps/user/app/auth/phone/login-form.tsx
index c06d930..4af3dee 100644
--- a/apps/user/app/auth/phone/login-form.tsx
+++ b/apps/user/app/auth/phone/login-form.tsx
@@ -103,7 +103,15 @@ export default function LoginForm({
type={mode === 'code' ? 'text' : 'password'}
{...field}
/>
- {mode === 'code' && }
+ {mode === 'code' && (
+
+ )}
diff --git a/apps/user/app/auth/phone/register-form.tsx b/apps/user/app/auth/phone/register-form.tsx
index 1095d34..4697c6e 100644
--- a/apps/user/app/auth/phone/register-form.tsx
+++ b/apps/user/app/auth/phone/register-form.tsx
@@ -153,7 +153,14 @@ export default function RegisterForm({
{...field}
value={field.value as string}
/>
-
+
+
diff --git a/apps/user/app/auth/phone/reset-form.tsx b/apps/user/app/auth/phone/reset-form.tsx
index cef01cf..1b163e3 100644
--- a/apps/user/app/auth/phone/reset-form.tsx
+++ b/apps/user/app/auth/phone/reset-form.tsx
@@ -104,7 +104,13 @@ export default function ResetForm({
{...field}
value={field.value as string}
/>
-
+
diff --git a/apps/user/app/auth/send-code.tsx b/apps/user/app/auth/send-code.tsx
index ac65256..40c1598 100644
--- a/apps/user/app/auth/send-code.tsx
+++ b/apps/user/app/auth/send-code.tsx
@@ -37,10 +37,11 @@ export default function SendCode({ type, params }: SendCodeProps) {
};
const getPhoneCode = async () => {
- if (params.telephone && params.telephone_area_code) {
+ if (params.telephone && params.telephone_area_code && params.type) {
await sendSmsCode({
telephone: params.telephone,
telephone_area_code: params.telephone_area_code,
+ type: params.type,
});
setTargetDate(Date.now() + 60000);
}
diff --git a/apps/user/services/common/index.ts b/apps/user/services/common/index.ts
index 73b3bda..61ba129 100644
--- a/apps/user/services/common/index.ts
+++ b/apps/user/services/common/index.ts
@@ -1,5 +1,5 @@
// @ts-ignore
-
+
// API 更新时间:
// API 唯一标识:
import * as auth from './auth';
diff --git a/apps/user/services/common/typings.d.ts b/apps/user/services/common/typings.d.ts
index dc07867..4d0ff86 100644
--- a/apps/user/services/common/typings.d.ts
+++ b/apps/user/services/common/typings.d.ts
@@ -348,6 +348,7 @@ declare namespace API {
};
type SendSmsCodeRequest = {
+ type: number;
telephone: string;
telephone_area_code: string;
};
@@ -594,6 +595,7 @@ declare namespace API {
auth_type: string;
auth_identifier: string;
verified: boolean;
+ area_code?: string;
};
type UserBalanceLog = {
diff --git a/apps/user/services/user/typings.d.ts b/apps/user/services/user/typings.d.ts
index 2354155..9e60137 100644
--- a/apps/user/services/user/typings.d.ts
+++ b/apps/user/services/user/typings.d.ts
@@ -70,6 +70,16 @@ declare namespace API {
enabled: boolean;
};
+ type BindEmailRequest = {
+ email: string;
+ };
+
+ type BindMobileRequest = {
+ area_code: string;
+ mobile: string;
+ code: string;
+ };
+
type BindOAuthCallbackRequest = {
method: string;
callback: Record;
@@ -89,6 +99,16 @@ declare namespace API {
expired_at: number;
};
+ type ChangebindEmailRequest = {
+ email: string;
+ };
+
+ type ChangebindMobileRequest = {
+ area_code: string;
+ mobile: string;
+ code: string;
+ };
+
type CheckoutOrderRequest = {
orderNo: string;
};
@@ -783,6 +803,7 @@ declare namespace API {
auth_type: string;
auth_identifier: string;
verified: boolean;
+ area_code?: string;
};
type UserBalanceLog = {
@@ -851,6 +872,11 @@ declare namespace API {
enable_reset_password_verify: boolean;
};
+ type VerifyEmailRequest = {
+ email: string;
+ code: string;
+ };
+
type Vless = {
port: number;
flow: string;
diff --git a/apps/user/services/user/user.ts b/apps/user/services/user/user.ts
index 059da83..948fcca 100644
--- a/apps/user/services/user/user.ts
+++ b/apps/user/services/user/user.ts
@@ -42,6 +42,30 @@ export async function queryUserBalanceLog(options?: { [key: string]: any }) {
);
}
+/** Bind Email POST /v1/public/user/bind_email */
+export async function bindEmail(body: API.BindEmailRequest, options?: { [key: string]: any }) {
+ return request('/v1/public/user/bind_email', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** Bind Mobile POST /v1/public/user/bind_mobile */
+export async function bindMobile(body: API.BindMobileRequest, options?: { [key: string]: any }) {
+ return request('/v1/public/user/bind_mobile', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
/** Bind OAuth POST /v1/public/user/bind_oauth */
export async function bindOAuth(body: API.BindOAuthRequest, options?: { [key: string]: any }) {
return request('/v1/public/user/bind_oauth', {
@@ -80,6 +104,36 @@ export async function bindTelegram(options?: { [key: string]: any }) {
);
}
+/** Change Bind Email POST /v1/public/user/change_bind_email */
+export async function changebindEmail(
+ body: API.ChangebindEmailRequest,
+ options?: { [key: string]: any },
+) {
+ return request('/v1/public/user/change_bind_email', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** Change Bind Mobile POST /v1/public/user/change_bind_mobile */
+export async function changebindMobile(
+ body: API.ChangebindMobileRequest,
+ options?: { [key: string]: any },
+) {
+ return request('/v1/public/user/change_bind_mobile', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
/** Query User Commission Log GET /v1/public/user/commission_log */
export async function queryUserCommissionLog(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
@@ -255,3 +309,15 @@ export async function preUnsubscribe(
},
);
}
+
+/** Verify Email POST /v1/public/user/verify_email */
+export async function verifyEmail(body: API.VerifyEmailRequest, options?: { [key: string]: any }) {
+ return request('/v1/public/user/verify_email', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}