From ee12aa931f21979fd1d41087cba8723e916b9c64 Mon Sep 17 00:00:00 2001 From: trueai-org Date: Tue, 21 Jan 2025 11:29:05 +0800 Subject: [PATCH] feat: login --- src/locales/en-US/pages.ts | 5 +- src/locales/zh-CN/pages.ts | 4 +- .../components/contents/AddContent.tsx | 1 - .../components/contents/UpdateContent.tsx | 4 +- src/pages/AccountList/index.tsx | 54 +++++++++++++++++-- src/services/mj/api.ts | 8 +++ 6 files changed, 66 insertions(+), 10 deletions(-) diff --git a/src/locales/en-US/pages.ts b/src/locales/en-US/pages.ts index cbea0fc..5477d48 100644 --- a/src/locales/en-US/pages.ts +++ b/src/locales/en-US/pages.ts @@ -139,6 +139,7 @@ export default { 'pages.account.sponsorAccountTitle': 'Sponsor Account (Thank you for your generosity and sponsorship)', 'pages.account.updateAndReconnect': 'Update And Reconnect', + 'pages.account.update': 'Update', 'pages.account.syncTitle': 'Will it actively execute /info, /settings to retrieve and update account information?', @@ -205,9 +206,11 @@ export default { 'pages.account.allowModesTooltip': 'If the user specifies the mode or adds a user-defined parameter, such as --fast, but the account does not allow FAST, this parameter is automatically removed', + 'pages.account.loginAccountGetToken': 'Login Account Get Token', + 'pages.account.loginAccountGetTokenError': 'The account, password, and 2FA key must be entered', 'pages.account.loginAccount': 'Login Account', 'pages.account.loginPassword': 'Login Password', - 'pages.account.logiln2fa': '2FA Code', + 'pages.account.login2fa': '2FA Code', 'pages.account.isAutoLogining': 'Auto Login in...', 'pages.task.info': 'Task Info', diff --git a/src/locales/zh-CN/pages.ts b/src/locales/zh-CN/pages.ts index 204d6f0..ff91535 100644 --- a/src/locales/zh-CN/pages.ts +++ b/src/locales/zh-CN/pages.ts @@ -187,9 +187,11 @@ export default { 'pages.account.subChannelsHelp': '请输入子频道,每行一个,格式:[邀请链接],[频道地址],示例:https://discord.gg/xxx,https://discord.com/channels/xxx/xxx', 'pages.account.allowModesTooltip': '如果用户指定模式或添加了自定义参数例如 --fast,但是账号不允许 FAST,则自动移除此参数', + 'pages.account.loginAccountGetToken': '登录并获取 Token', + 'pages.account.loginAccountGetTokenError': '必须填写账号和密码、2FA密钥', 'pages.account.loginAccount': '登录账号', 'pages.account.loginPassword': '登录密码', - 'pages.account.logiln2fa': '2FA 密钥', + 'pages.account.login2fa': '2FA 密钥', 'pages.account.isAutoLogining': '登录中...', diff --git a/src/pages/AccountList/components/contents/AddContent.tsx b/src/pages/AccountList/components/contents/AddContent.tsx index 68030dd..83334e3 100644 --- a/src/pages/AccountList/components/contents/AddContent.tsx +++ b/src/pages/AccountList/components/contents/AddContent.tsx @@ -110,7 +110,6 @@ const AddContent = ({ diff --git a/src/pages/AccountList/components/contents/UpdateContent.tsx b/src/pages/AccountList/components/contents/UpdateContent.tsx index a183d84..43b21e5 100644 --- a/src/pages/AccountList/components/contents/UpdateContent.tsx +++ b/src/pages/AccountList/components/contents/UpdateContent.tsx @@ -211,8 +211,8 @@ const UpdateContent = ({ diff --git a/src/pages/AccountList/index.tsx b/src/pages/AccountList/index.tsx index 9d6475e..999f9f7 100644 --- a/src/pages/AccountList/index.tsx +++ b/src/pages/AccountList/index.tsx @@ -5,12 +5,19 @@ import CfContent from '@/pages/AccountList/components/contents/CfContent'; import MoreContent from '@/pages/AccountList/components/contents/MoreContent'; import ReconnectContent from '@/pages/AccountList/components/contents/ReconnectContent'; import UpdateContent from '@/pages/AccountList/components/contents/UpdateContent'; -import { createAccount, queryAccounts, update, updateAndReconnect } from '@/services/mj/api'; +import { + createAccount, + loginAccountGetToken, + queryAccounts, + update, + updateAndReconnect, +} from '@/services/mj/api'; import { ClockCircleOutlined, EditOutlined, HeartTwoTone, LockOutlined, + LoginOutlined, SyncOutlined, ToolOutlined, UnlockOutlined, @@ -119,7 +126,7 @@ const AccountList: React.FC = () => { guildId: '', loginAccount: '', loginPassword: '', - logiln2fa: '', + login2fa: '', }; localStorage.setItem('account_cache', JSON.stringify(prev)); @@ -140,6 +147,36 @@ const AccountList: React.FC = () => { } }; + // 登录并获取 token + const handleLogin = async (values: Record) => { + try { + // 验证账号、密码、2fa + if (!values.loginAccount || !values.loginPassword || !values.login2fa) { + api.error({ + message: 'error', + description: intl.formatMessage({ id: 'pages.account.loginAccountGetTokenError' }), + }); + return; + } + + const res = await loginAccountGetToken(values.id); + if (res.success) { + api.success({ + message: 'success', + description: res.message, + }); + hideModal(); + triggerRefreshAccount(); + } else { + api.error({ + message: 'error', + description: res.message, + }); + } + } finally { + } + }; + const handleReconnect = async (values: Record) => { // 判断如果 subChannels 为空,则设置为空数组 if (!values.subChannels) { @@ -275,9 +312,7 @@ const AccountList: React.FC = () => { {text} {record.isAutoLogining && ( - - {intl.formatMessage({ id: 'pages.account.isAutoLogining' })} - + {intl.formatMessage({ id: 'pages.account.isAutoLogining' })} )} {record.lock && ( @@ -450,6 +485,15 @@ const AccountList: React.FC = () => { render: (value: any, record: Record) => { return ( + +