fixing proxy
This commit is contained in:
@@ -4,10 +4,25 @@ import BarNavigation from "../BarNavigation/BarNavigation";
|
||||
import header from "./Header.module.css";
|
||||
import BarNavigationServicio from "../BarNavigation/BarNavigationServicio";
|
||||
import { cookies } from "next/headers";
|
||||
import { jwtVerify } from "jose";
|
||||
import { redirect } from "next/navigation";
|
||||
|
||||
const secret = new TextEncoder().encode(process.env.JWT_SECRET);
|
||||
|
||||
export default async function Header() {
|
||||
const cookieStore = await cookies();
|
||||
const role = cookieStore.get("role")?.value || "";
|
||||
const cookieStore = cookies();
|
||||
const token = (await cookieStore).get("token")?.value;
|
||||
|
||||
let role: number = 5;
|
||||
|
||||
if (token) {
|
||||
try {
|
||||
const { payload } = await jwtVerify(token, secret);
|
||||
role = payload.role as number;
|
||||
} catch (error) {
|
||||
role = 5;
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<header className={header.header}>
|
||||
@@ -29,11 +44,11 @@ export default async function Header() {
|
||||
</Link>
|
||||
<div className={header.yellowPart}></div>
|
||||
<div className={header.containerBarNav}>
|
||||
{role === "1" && <BarNavigation />}
|
||||
{role === "4" && <BarNavigation />}
|
||||
{role === 1 && <BarNavigation />}
|
||||
{role === 4 && <BarNavigation />}
|
||||
|
||||
{role === "2" && <BarNavigationServicio/>}
|
||||
{role === "3" && <BarNavigationServicio/>}
|
||||
{role === 2 && <BarNavigationServicio/>}
|
||||
{role === 3 && <BarNavigationServicio/>}
|
||||
</div>
|
||||
</header>
|
||||
);
|
||||
|
||||
@@ -12,8 +12,12 @@ export async function proxy(request: NextRequest) {
|
||||
const token = request.cookies.get("token")?.value;
|
||||
const pathname = request.nextUrl.pathname;
|
||||
|
||||
if (!token && pathname != "/") {
|
||||
return NextResponse.redirect(new URL("/", request.url));
|
||||
if (!token && pathname !== "/") {
|
||||
const response = NextResponse.redirect(new URL("/", request.url));
|
||||
|
||||
response.cookies.delete("user");
|
||||
response.cookies.delete("token");
|
||||
return response;
|
||||
}
|
||||
|
||||
if (pathname === "/" && token) {
|
||||
@@ -47,9 +51,10 @@ export async function proxy(request: NextRequest) {
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
if (pathname != "/") {
|
||||
return NextResponse.redirect(new URL("/", request.url));
|
||||
}
|
||||
const response = NextResponse.redirect(new URL("/", request.url));
|
||||
response.cookies.delete("token");
|
||||
response.cookies.delete("user");
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user