From fc39af6dbf2ab9706646eda9478348ecd82913b2 Mon Sep 17 00:00:00 2001 From: sijinhui Date: Mon, 29 Apr 2024 13:51:57 +0800 Subject: [PATCH] Revert "fix build error" This reverts commit 9017e6a0b7b7073c1d64510be855d5b541604910. --- lib/auth.ts | 13 ++++++++++++- lib/auth_client.ts | 2 +- lib/auth_list.ts | 6 ++++++ middleware.ts | 11 +++-------- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/lib/auth.ts b/lib/auth.ts index 9f18f918e..f0e5f32c4 100644 --- a/lib/auth.ts +++ b/lib/auth.ts @@ -5,7 +5,7 @@ import CredentialsProvider from "next-auth/providers/credentials"; import {PrismaAdapter} from "@next-auth/prisma-adapter"; import prisma from "@/lib/prisma"; import { User } from "@prisma/client"; -import { isEmail, isName } from "@/lib/auth_list"; +import {ADMIN_LIST, isEmail, isName} from "@/lib/auth_list"; import {createTransport} from "nodemailer"; import { comparePassword, hashPassword } from "@/lib/utils"; import {getCurStartEnd} from "@/app/utils/custom"; @@ -194,6 +194,17 @@ export async function getSessionName() { } } +export async function VerifiedUser() { + const { name, session } = await getSessionName(); + const userId = session?.user?.id + return !!(name && isName(name) && userId); +} + +export async function VerifiedAdminUser() { + const { name, session } = await getSessionName(); + return !!(name && ADMIN_LIST.includes(name)); +} + export function validatePassword(password: string, hashPassword: string | null | undefined ): boolean | void { if (!hashPassword) { throw new Error("未设置密码"); diff --git a/lib/auth_client.ts b/lib/auth_client.ts index a80c8f474..e129b56f6 100644 --- a/lib/auth_client.ts +++ b/lib/auth_client.ts @@ -1,4 +1,4 @@ -import { isName } from "@/lib/auth_list"; +import {ADMIN_LIST, isName} from "@/lib/auth_list"; import { JWT } from "next-auth/jwt"; import { User } from "@prisma/client"; diff --git a/lib/auth_list.ts b/lib/auth_list.ts index 09d8d4450..97eafa3e0 100644 --- a/lib/auth_list.ts +++ b/lib/auth_list.ts @@ -4,6 +4,12 @@ export const DENY_LIST: string[] = [ "suibian", "某某", "张三", "李四", "啊实打实", "官方回复电话", "笑死", "观化听风", "null", "undefined", "zhangsan", ] +export const ADMIN_LIST: string[] = [ + "sijinhui", "sijinhui@qq.com", + "yuchuan", "于川", + "jujujujuju", +] + export function isEmail(input: string): boolean { const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; diff --git a/middleware.ts b/middleware.ts index 35c770741..985b3b26e 100644 --- a/middleware.ts +++ b/middleware.ts @@ -1,13 +1,8 @@ import { NextResponse } from "next/server"; import type { NextRequest } from "next/server"; import { getToken } from "next-auth/jwt"; +// import { isName, ADMIN_LIST } from "@/lib/auth_list"; import { VerifiedUser, VerifiedAdminUser } from "@/lib/auth_client"; -import { JWT } from "next-auth/jwt"; -import { User } from "@prisma/client"; - -type CUS_JWT = JWT & { - user: User, -} export default async function middleware(req: NextRequest) { const url = req.nextUrl; @@ -22,8 +17,8 @@ export default async function middleware(req: NextRequest) { const session = await getToken({ req }); - const isUser = await VerifiedUser(session as CUS_JWT); - const isAdminUser = await VerifiedAdminUser(session as CUS_JWT); + const isUser = await VerifiedUser(session); + const isAdminUser = await VerifiedAdminUser(session); // console.log('----session', session, '---isUser', isUser, '---isAdmin', isAdminUser) // 管理员页面的api接口还是要认证的 if (path.startsWith('/api/admin/')) {