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 {
|
try {
|
||||||
const { data } = await req.json();
|
const { data } = await req.json();
|
||||||
console.log("data api register", data);
|
|
||||||
|
|
||||||
const cekUsername = await prisma.user.findUnique({
|
const cekUsername = await prisma.user.findUnique({
|
||||||
where: {
|
where: {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import Login from "./login/view";
|
|||||||
import Validasi from "./validasi/view";
|
import Validasi from "./validasi/view";
|
||||||
import Register from "./register/view";
|
import Register from "./register/view";
|
||||||
import Component_ButtonLogout from "./logout/view";
|
import Component_ButtonLogout from "./logout/view";
|
||||||
|
import InvalidUser from "./invalid_user/view";
|
||||||
|
|
||||||
export {
|
export {
|
||||||
SplashScreen,
|
SplashScreen,
|
||||||
@@ -10,4 +11,5 @@ export {
|
|||||||
Validasi,
|
Validasi,
|
||||||
Register,
|
Register,
|
||||||
Component_ButtonLogout as Logout,
|
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",
|
"/register",
|
||||||
"/validasi",
|
"/validasi",
|
||||||
"/splash",
|
"/splash",
|
||||||
|
"/invalid-user",
|
||||||
"/job-vacancy",
|
"/job-vacancy",
|
||||||
"/preview-image",
|
"/preview-image",
|
||||||
"/auth/login",
|
"/auth/login",
|
||||||
@@ -145,16 +146,9 @@ export const middleware = async (req: NextRequest) => {
|
|||||||
const userValidateJson = await userValidate.json();
|
const userValidateJson = await userValidate.json();
|
||||||
|
|
||||||
if (userValidateJson.success == true && userValidateJson.data == null) {
|
if (userValidateJson.success == true && userValidateJson.data == null) {
|
||||||
const logout = await fetch(new URL("/api/auth/logout", req.url), {
|
return setCorsHeaders(
|
||||||
headers: {
|
NextResponse.redirect(new URL("/invalid-user", req.url))
|
||||||
"Content-Type": "application/json",
|
);
|
||||||
Authorization: `Bearer ${token}`,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!logout.ok) {
|
|
||||||
throw new Error("Failed to logout user");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!userValidateJson.data.active) {
|
if (!userValidateJson.data.active) {
|
||||||
|
|||||||
Reference in New Issue
Block a user