From b95a99aaff647cf2e09f3f5609364608978db6fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E7=A7=8B=E6=97=AD?= Date: Mon, 20 Feb 2023 17:32:14 +0800 Subject: [PATCH] register page --- src/api/auth.ts | 11 ++++- src/pages/_app.tsx | 29 ++++++++++++- src/pages/login.tsx | 6 ++- src/pages/register.tsx | 96 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 137 insertions(+), 5 deletions(-) create mode 100644 src/pages/register.tsx diff --git a/src/api/auth.ts b/src/api/auth.ts index 02f7b15..5517a8e 100644 --- a/src/api/auth.ts +++ b/src/api/auth.ts @@ -2,10 +2,15 @@ import axios from '@/utils/axios' export interface LoginInputDto { email: string - /** @minLength 8 */ password: string } +export interface CreateUserDto { + email: string + password: string + username?: string +} + export interface Token { accessToken: string refreshToken: string @@ -15,6 +20,10 @@ export interface TokenRefreshPayload { refreshToken: string } +export async function register(data: CreateUserDto) { + return axios.post('/api/auth/register', data) +} + export async function login(data: LoginInputDto) { return axios.post('/api/auth/login', data) } diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index cb457e6..3cd4df4 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,15 +1,40 @@ +import { forwardRef } from 'react' import type { AppProps } from 'next/app' import CssBaseline from '@mui/material/CssBaseline' +import NextLink, { type LinkProps as NextLinkProps } from 'next/link' +import { LinkProps } from '@mui/material/Link' +import { ThemeProvider, createTheme } from '@mui/material' import '@fontsource/roboto/300.css' import '@fontsource/roboto/400.css' import '@fontsource/roboto/500.css' import '@fontsource/roboto/700.css' +const NextMuiLink = forwardRef( + function NextMuiLink(props, ref) { + return + }, +) + +const theme = createTheme({ + components: { + MuiLink: { + defaultProps: { + component: NextMuiLink, + } as LinkProps, + }, + MuiButtonBase: { + defaultProps: { + LinkComponent: NextMuiLink, + }, + }, + }, +}) + export default function App({ Component, pageProps }: AppProps) { return ( - <> + - + ) } diff --git a/src/pages/login.tsx b/src/pages/login.tsx index 819fdd1..9f05b83 100644 --- a/src/pages/login.tsx +++ b/src/pages/login.tsx @@ -12,7 +12,7 @@ import { useRouter } from 'next/router' import * as yup from '@/utils/validation' import * as api from '@/api' -export default function SignIn() { +export default function Login() { const router = useRouter() const formik = useFormik({ @@ -23,7 +23,7 @@ export default function SignIn() { validateOnChange: false, validationSchema: yup.object({ email: yup.emailSchema, - password: yup.passwordSchema, + // password: yup.passwordSchema, }), onSubmit: async (values) => { const res = await api.auth.login(values) @@ -57,6 +57,7 @@ export default function SignIn() { > { + const res = await api.auth.register(values) + localStorage.setItem('accessToken', res.data.accessToken) + localStorage.setItem('refreshToken', res.data.refreshToken) + router.push('/') + }, + }) + + return ( + + + + + + + 注册 + + + + + + + + + 登录 + + + + + + + ) +}