From 6dcc4753ae2d6e063893bd661e0a1563590b0707 Mon Sep 17 00:00:00 2001 From: mozzie Date: Mon, 13 Mar 2023 22:25:43 +0800 Subject: [PATCH] feat: login --- apps/admin/src/App.tsx | 2 +- apps/admin/src/api/dto.ts | 5 + apps/admin/src/api/index.ts | 5 +- apps/admin/src/router/Guard.tsx | 7 +- apps/admin/src/router/index.tsx | 2 +- apps/admin/src/view/Login/index.less | 9 +- apps/admin/src/view/Login/index.tsx | 18 +-- apps/server/src/biz/code.ts | 1 + apps/server/src/configuration.ts | 4 +- .../server/src/controller/admin.controller.ts | 25 ++++ apps/server/src/middleware/auth.middleware.ts | 25 ++++ .../server/src/middleware/local.middleware.ts | 21 ---- apps/web/package.json | 6 +- package.json | 6 +- pnpm-lock.yaml | 111 +++++++++--------- 15 files changed, 145 insertions(+), 102 deletions(-) create mode 100644 apps/server/src/controller/admin.controller.ts create mode 100644 apps/server/src/middleware/auth.middleware.ts delete mode 100644 apps/server/src/middleware/local.middleware.ts diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index 6522413..95a96f5 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -9,7 +9,7 @@ function App() { return ( - } /> + } /> } /> 404} /> diff --git a/apps/admin/src/api/dto.ts b/apps/admin/src/api/dto.ts index cfce04e..5f05992 100644 --- a/apps/admin/src/api/dto.ts +++ b/apps/admin/src/api/dto.ts @@ -18,3 +18,8 @@ export interface ICreateCourseRequest extends ICourseBasic { course_chapterList: []; course_guide: {}; } + +export interface IAdminLogin { + username: string; + password: string; +} diff --git a/apps/admin/src/api/index.ts b/apps/admin/src/api/index.ts index b8983fc..1aaa748 100644 --- a/apps/admin/src/api/index.ts +++ b/apps/admin/src/api/index.ts @@ -1,6 +1,6 @@ import R from "./request"; import P from "./process"; -import { ICreateCourseRequest, IgetVodRequest } from "./dto"; +import { IAdminLogin, ICreateCourseRequest, IgetVodRequest } from "./dto"; /** * 腾讯vod媒资 @@ -10,3 +10,6 @@ export const getVod = (p: IgetVodRequest) => export const createCourse = (p: ICreateCourseRequest) => R.post("/api/course/create", { ...p }); + +export const adminLogin = (p: IAdminLogin) => + R.post("/api/admin/user/auth", { ...p }); diff --git a/apps/admin/src/router/Guard.tsx b/apps/admin/src/router/Guard.tsx index 8792003..8190c57 100644 --- a/apps/admin/src/router/Guard.tsx +++ b/apps/admin/src/router/Guard.tsx @@ -1,5 +1,6 @@ import React, { useEffect } from "react"; -import { useLocation } from "react-router-dom"; +import { useLocation, useNavigate } from "react-router-dom"; +import Cookie from "js-cookie"; interface IGuardProps { children: JSX.Element; @@ -7,9 +8,11 @@ interface IGuardProps { export const Guard = (props: IGuardProps) => { const location = useLocation(); + const navigate = useNavigate(); useEffect(() => { - console.log("location.pathname changed 拦截", location.pathname); + const sign = Cookie.get("_sign_admin"); + if (!sign) navigate("/"); }, [location.pathname]); return props.children; diff --git a/apps/admin/src/router/index.tsx b/apps/admin/src/router/index.tsx index 03557fa..553304f 100644 --- a/apps/admin/src/router/index.tsx +++ b/apps/admin/src/router/index.tsx @@ -11,7 +11,7 @@ interface IRoute extends IRouteMenuItem { export const navRoutes: IRoute[] = [ { - path: "/", + path: "/overview", element: lazy(() => import("../view/Overview")), name: "总览", }, diff --git a/apps/admin/src/view/Login/index.less b/apps/admin/src/view/Login/index.less index 850d070..0e647bd 100644 --- a/apps/admin/src/view/Login/index.less +++ b/apps/admin/src/view/Login/index.less @@ -1,12 +1,5 @@ #root { - background-image: linear-gradient( - to right, - #e95659, - #e15084, - #c55aaa, - #976bc4, - #5678ce - ); + background: #f5f5f5; height: 100vh; } diff --git a/apps/admin/src/view/Login/index.tsx b/apps/admin/src/view/Login/index.tsx index d2952ee..1533b06 100644 --- a/apps/admin/src/view/Login/index.tsx +++ b/apps/admin/src/view/Login/index.tsx @@ -1,13 +1,21 @@ -import { Button, Checkbox, Form, Input } from "antd"; +import { Button, Checkbox, Form, Input, message } from "antd"; import { useNavigate } from "react-router-dom"; +import { adminLogin } from "../../api"; import "./index.less"; const Login = () => { const navigate = useNavigate(); const onFinish = (values: any) => { - console.log("Success:", values); - navigate("/"); + adminLogin(values).then((res: any) => { + const { code } = res; + if (code == 10000) { + message.success("登录成功"); + navigate("/overview"); + } else { + message.error(res.msg); + } + }); }; return ( @@ -51,10 +59,6 @@ const Login = () => { - - 记住我 - -