fix middleware
This commit is contained in:
9
src/app/(auth)/invalid-user/page.tsx
Normal file
9
src/app/(auth)/invalid-user/page.tsx
Normal file
@@ -0,0 +1,9 @@
|
||||
import { InvalidUser } from "@/app_modules/auth";
|
||||
|
||||
export default function Page() {
|
||||
return (
|
||||
<>
|
||||
<InvalidUser />
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -13,7 +13,6 @@ export async function POST(req: Request) {
|
||||
|
||||
try {
|
||||
const { data } = await req.json();
|
||||
console.log("data api register", data);
|
||||
|
||||
const cekUsername = await prisma.user.findUnique({
|
||||
where: {
|
||||
|
||||
@@ -3,6 +3,7 @@ import Login from "./login/view";
|
||||
import Validasi from "./validasi/view";
|
||||
import Register from "./register/view";
|
||||
import Component_ButtonLogout from "./logout/view";
|
||||
import InvalidUser from "./invalid_user/view";
|
||||
|
||||
export {
|
||||
SplashScreen,
|
||||
@@ -10,4 +11,5 @@ export {
|
||||
Validasi,
|
||||
Register,
|
||||
Component_ButtonLogout as Logout,
|
||||
InvalidUser,
|
||||
};
|
||||
|
||||
46
src/app_modules/auth/invalid_user/view.tsx
Normal file
46
src/app_modules/auth/invalid_user/view.tsx
Normal file
@@ -0,0 +1,46 @@
|
||||
"use client";
|
||||
|
||||
import { MainColor } from "@/app_modules/_global/color";
|
||||
import { UIGlobal_LayoutDefault } from "@/app_modules/_global/ui";
|
||||
import { Button, Stack, Text, Title } from "@mantine/core";
|
||||
import { useRouter } from "next/navigation";
|
||||
|
||||
export default function InvalidUser() {
|
||||
const router = useRouter();
|
||||
const deleteCookie = async () => {
|
||||
const sessionKey = process.env.NEXT_PUBLIC_BASE_SESSION_KEY!;
|
||||
if (!sessionKey) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await fetch("/api/auth/logout", {
|
||||
method: "GET",
|
||||
});
|
||||
router.push("/login");
|
||||
} catch (error) {
|
||||
console.error("Gagal menghapus cookie:", error);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<UIGlobal_LayoutDefault>
|
||||
<Stack align="center" justify="center" spacing="md" h={"100vh"}>
|
||||
<Title order={2} c={MainColor.white}>
|
||||
{" "}
|
||||
Invalid User
|
||||
</Title>
|
||||
<Button
|
||||
radius={"xl"}
|
||||
onClick={() => {
|
||||
deleteCookie();
|
||||
}}
|
||||
>
|
||||
Logout
|
||||
</Button>
|
||||
</Stack>
|
||||
</UIGlobal_LayoutDefault>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -54,6 +54,7 @@ const middlewareConfig: MiddlewareConfig = {
|
||||
"/register",
|
||||
"/validasi",
|
||||
"/splash",
|
||||
"/invalid-user",
|
||||
"/job-vacancy",
|
||||
"/preview-image",
|
||||
"/auth/login",
|
||||
@@ -145,16 +146,9 @@ export const middleware = async (req: NextRequest) => {
|
||||
const userValidateJson = await userValidate.json();
|
||||
|
||||
if (userValidateJson.success == true && userValidateJson.data == null) {
|
||||
const logout = await fetch(new URL("/api/auth/logout", req.url), {
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
Authorization: `Bearer ${token}`,
|
||||
},
|
||||
});
|
||||
|
||||
if (!logout.ok) {
|
||||
throw new Error("Failed to logout user");
|
||||
}
|
||||
return setCorsHeaders(
|
||||
NextResponse.redirect(new URL("/invalid-user", req.url))
|
||||
);
|
||||
}
|
||||
|
||||
if (!userValidateJson.data.active) {
|
||||
|
||||
Reference in New Issue
Block a user