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 || {}), + }); +}