25 lines
775 B
Plaintext
25 lines
775 B
Plaintext
import { NextResponse } from 'next/server';
|
|
import type { NextRequest } from 'next/server';
|
|
|
|
export function proxy(request: NextRequest) {
|
|
// Mengekstrak HttpOnly Cookie dari Pilar 1
|
|
const token = request.cookies.get('jumpa_token')?.value;
|
|
|
|
// Jika token tidak ada, tendang pengguna ke halaman Login Pilar 1
|
|
if (!token) {
|
|
// Redirect ke root IAM menggunakan absolute URL agar keluar dari basePath /c
|
|
const loginUrl = new URL('/', request.url);
|
|
return NextResponse.redirect(loginUrl);
|
|
}
|
|
|
|
// Jika ada, izinkan masuk ke halaman antarmuka Chat
|
|
return NextResponse.next();
|
|
}
|
|
|
|
export const config = {
|
|
matcher: [
|
|
// Terapkan ke semua rute halaman, kecuali aset statis dan API internal
|
|
'/((?!api|_next/static|_next/image|favicon.ico).*)',
|
|
],
|
|
};
|