Langsung ke konten utama

Membuat pengecualian pada middleware Nexjs 14

Pada contoh berikut merupakan middleware yang sudah dibuat.

import { NextResponse } from "next/server";

import { getSession } from '@/lib/actions';


export async function middleware(req) {

  const { pathname } = req.nextUrl;

  const session = await getSession(req);


  if (!session.isLoggedIn) {

    const url = req.nextUrl.clone();

    url.pathname = '/admin/login';

    return NextResponse.redirect(url);

  }


  return NextResponse.next();

}


export const config = {

  matcher: '/admin/:path*',

};


Agar project tidak mengalami "Many to redirect" kalian hanya perlu menambahkanya seperti ini.

// Jika rute adalah '/admin/login', biarkan saja

  if (pathname === '/admin/login') {

    return NextResponse.next();

  }

Jika sudah digabungkan maka akan menjadi seperti ini.

import { NextResponse } from "next/server";

import { getSession } from '@/lib/actions';


export async function middleware(req) {

  const { pathname } = req.nextUrl;


  // Jika rute adalah '/admin/login', biarkan saja

  if (pathname === '/admin/login') {

    return NextResponse.next();

  }


  const session = await getSession(req);


  if (!session.isLoggedIn) {

    const url = req.nextUrl.clone();

    url.pathname = '/admin/login';

    return NextResponse.redirect(url);

  }


  return NextResponse.next();

}


export const config = {

  matcher: '/admin/:path*',

};

perlu kalian ketahui cara ini akan berguna jika kalian menggunakan "redirect" tetapi jika menggantinya dengan rewrite maka kalian tidak perlu membuat pengecualian.

Postingan populer dari blog ini

3 Cara Otomatis Replace index.php di Linux Ubuntu: Systemd, Cron, dan Shell Loop

Ada beberapa cara untuk membuat Linux Ubuntu otomatis mengganti atau memperbarui file: /var/www/html/index.php secara berkala dari script lokal. Tiga metode yang paling umum adalah: Systemd Service + Timer Cron Shell Loop + nohup Di bawah ini adalah contoh implementasinya. 1. Menggunakan Systemd Service + Timer Metode ini paling cocok untuk VPS atau server Ubuntu normal yang menggunakan systemd . Buat script update sudo nano /usr/local/bin/update-index.sh Isi: #!/bin/sh cat > /var/www/html/index.php <<'EOF' <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Website</title> </head> <body> <h1>INDEX OTOMATIS</h1> </body> </html> EOF Beri permission execute: sudo chmod +x /usr/local/bin/update-index.sh Buat service sudo nano /etc/systemd/system/update-index.service Isi: [Unit] Description=Update index.php [Service] Type=oneshot ExecStart=/usr/local...

Tutorial Dasar GSocket dan gs-netcat di Windows dan Ubuntu

GSocket atau Global Socket Toolkit adalah kumpulan tool yang memungkinkan dua komputer membuat koneksi TCP melalui Global Socket Relay Network (GSRN) . Salah satu tool di dalamnya adalah gs-netcat . Berbeda dengan koneksi TCP tradisional yang biasanya membutuhkan alamat IP dan port tujuan, GSocket memungkinkan dua endpoint saling menemukan berdasarkan sebuah shared secret . Koneksi antarendpoint kemudian dapat dilindungi dengan enkripsi end-to-end. Gambaran Cara Kerja Secara sederhana: Windows | | outbound connection v Global Socket Relay Network ^ | outbound connection | Ubuntu Artinya Ubuntu tidak harus membuka sebuah port publik khusus agar endpoint GSocket dapat berkomunikasi. Ini berbeda dengan SSH langsung: Windows | | SSH v IP Ubuntu:22 Pada SSH biasa, Windows harus mengetahui IP atau domain server serta port SSH yang dapat dijangkau. Apakah gs-netcat Tersedia di Windows? Ya. GSocket menyediakan gs-netcat yang dapat digunaka...