- Welcome join us
-
- navigate(
- `/login${
- searchParams.toString() ? `?${searchParams.toString()}` : ''
- }`
- )
- }
- >
- 登录
-
-
-
+
+
创建账号
+
Create account
+
+
+ {!isFinish ? (
+ <>
+
+ }
+ placeholder={'用户名'}
+ maxLength={39}
+ showCount={true}
+ disabled={isSigningUp}
+ />
+
+
+ }
+ placeholder={'邮箱'}
+ disabled={isSigningUp}
+ />
+
+
+ }
+ placeholder={'密码'}
+ disabled={isSigningUp}
+ />
+
+ ({
+ validator(_, value) {
+ if (!value || getFieldValue('password') === value) {
+ return Promise.resolve()
+ }
+ return Promise.reject(
+ new Error('两次密码输入必须一致')
+ )
+ }
+ })
+ ]}
+ >
+ }
+ placeholder={'确认密码'}
+ disabled={isSigningUp}
+ />
+
+
+
+ 注 册
+
+
+ >
+ ) : (
+
+ 我们发送了一封包含激活账号链接的邮件到您的邮箱里,如未收到,可能被归为垃圾邮件,请仔细检查。
+
重新发送
+
+ )}
+
+
@@ -45,6 +181,21 @@ const SignUp: React.FC = () => {
)
}
+const Verify: React.FC = () => {
+ const navigate = useNavigate()
+ const [searchParams] = useSearchParams()
+
+ useUpdatedEffect(() => {
+ if (!getLoginStatus()) {
+ navigate(`/login${searchParams.toString() ? `?${searchParams.toString()}` : ''}`, {
+ replace: true
+ })
+ }
+ }, [])
+
+ return <>>
+}
+
const Forget: React.FC = () => {
const navigate = useNavigate()
const [searchParams] = useSearchParams()
@@ -72,7 +223,10 @@ const Forget: React.FC = () => {
<>
}
@@ -93,7 +247,7 @@ const Forget: React.FC = () => {
>
) : (
-
+
我们发送了一封包含找回密码链接的邮件到您的邮箱里,如未收到,可能被归为垃圾邮件,请仔细检查。
重新发送
@@ -108,7 +262,8 @@ const Forget: React.FC = () => {
searchParams.toString()
? `?${searchParams.toString()}`
: ''
- }`
+ }`,
+ { replace: true }
)
}
>
@@ -128,13 +283,13 @@ const SignIn: React.FC = () => {
const [searchParams] = useSearchParams()
const [isSigningIn, setIsSigningIn] = useState(false)
- const handleOnFinish = (loginForm: LoginForm) => {
+ const handleOnFinish = (loginParam: LoginParam) => {
if (isSigningIn) {
return
}
setIsSigningIn(true)
- void login(loginForm.account, loginForm.password)
+ void r_auth_login({ account: loginParam.account, password: loginParam.password })
.then((res) => {
const response = res.data
const { code, data } = response
@@ -216,7 +371,7 @@ const SignIn: React.FC = () => {
}
@@ -226,7 +381,7 @@ const SignIn: React.FC = () => {
}
@@ -243,7 +398,8 @@ const SignIn: React.FC = () => {
searchParams.toString()
? `?${searchParams.toString()}`
: ''
- }`
+ }`,
+ { replace: true }
)
}}
>
@@ -262,7 +418,7 @@ const SignIn: React.FC = () => {
- 还没有账户?
+ 还没有账号?
navigate(
@@ -270,7 +426,8 @@ const SignIn: React.FC = () => {
searchParams.toString()
? `?${searchParams.toString()}`
: ''
- }`
+ }`,
+ { replace: true }
)
}
>
@@ -290,7 +447,7 @@ const Sign: React.FC = () => {
const match = useMatches().reduce((_, second) => second)
const [isSwitch, setIsSwitch] = useState(false)
- const leftPage = ['register', 'forget']
+ const leftPage = ['register', 'verify', 'forget']
useUpdatedEffect(() => {
lastPage.current = currentPage.current
@@ -303,6 +460,8 @@ const Sign: React.FC = () => {
switch (leftPage.includes(currentPage.current) ? currentPage.current : lastPage.current) {
case 'forget':
return
+ case 'verify':
+ return
default:
return
}
diff --git a/src/router/index.tsx b/src/router/index.tsx
index 3714009..4135a7f 100644
--- a/src/router/index.tsx
+++ b/src/router/index.tsx
@@ -21,9 +21,9 @@ const root: RouteJsonObject[] = [
component: lazySignPage
},
{
- path: 'confirm',
- absolutePath: '/confirm',
- id: 'confirm',
+ path: 'verify',
+ absolutePath: '/verify',
+ id: 'verify',
component: lazySignPage
},
{
diff --git a/src/services/auth.tsx b/src/services/auth.tsx
index 1770854..8cf2075 100644
--- a/src/services/auth.tsx
+++ b/src/services/auth.tsx
@@ -1,10 +1,10 @@
-import { URL_LOGIN, URL_LOGOUT } from '@/constants/urls.constants'
+import { URL_LOGIN, URL_LOGOUT, URL_REGISTER, URL_VERIFY } from '@/constants/urls.constants'
import request from '@/services'
-export const r_auth_login = (account: string, password: string) =>
- request.post(URL_LOGIN, {
- account,
- password
- })
+export const r_auth_register = (param: RegisterParam) => request.post(URL_REGISTER, param)
+
+export const r_auth_verify = (param: VerifyParam) => request.post(URL_VERIFY, param)
+
+export const r_auth_login = (param: LoginParam) => request.post(URL_LOGIN, param)
export const r_auth_logout = () => request.post(URL_LOGOUT)
diff --git a/src/util/auth.tsx b/src/util/auth.tsx
index 4768ff4..ea138c3 100644
--- a/src/util/auth.tsx
+++ b/src/util/auth.tsx
@@ -8,7 +8,6 @@ import { floorNumber, randomColor, randomFloat, randomInt } from '@/util/common'
import { getLocalStorage, removeLocalStorage, setLocalStorage } from '@/util/browser'
import { getFullTitle } from '@/util/route'
import { r_sys_user_info } from '@/services/system'
-import { r_auth_login, r_auth_logout } from '@/services/auth'
let captcha: Captcha
@@ -65,16 +64,6 @@ export const getCaptcha = (width: number, high: number, num: number) => {
}
}
-export const login = async (account: string, password: string) => {
- return await r_auth_login(account, password)
-}
-
-export const logout = async () => {
- return r_auth_logout().finally(() => {
- removeToken()
- })
-}
-
export const getLoginStatus = () => {
return getLocalStorage(STORAGE_TOKEN_KEY) !== null
}