Basic Auth
@gaman/basic-auth
adalah middleware resmi untuk menambahkan Basic Authentication di framework GamanJS.
Basic Auth adalah mekanisme sederhana untuk melindungi endpoint menggunakan kombinasi username dan password yang dikirim lewat header Authorization
.
Install
Section titled “Install”GamanJS adalah kerangka kerja untuk aplikasi backend, Anda dapat menginstall menggunakan manajer paket favorit Anda:
npm install @gaman/basic-auth
pnpm install @gaman/basic-auth
yarn install @gaman/basic-auth
bun install @gaman/basic-auth
Cara Pakai
Section titled “Cara Pakai”berikut adalah cara implementasi @gaman/basic-auth
import { basicAuth } from "@gaman/basic-auth"
defineBootstrap((app) => { app.mount( basicAuth({ username: 'admin', password: 'admin123' }) )
...})
jika ingin spesifik ke route tertentu tinggal implementasi seperti berikut
import { basicAuth } from "@gaman/basic-auth"
route.get('/user').middleware(basicAuth({ username: 'admin', password: 'admin123'}))
Config
Section titled “Config”Disini Basic Auth punya 2 config yang berbeda satunya static
satunya dynamic
.
Static Config
Section titled “Static Config”berikut adalah contoh config static
basicAuth({ username: 'admin', password: "admin123",})
Konfigurasi ini sangat sederhana dan cocok untuk proteksi endpoint dasar.
Dynamic Config
Section titled “Dynamic Config”berikut adalah contoh config dynamic
basicAuth({ verifyAuth: (username, password, ctx) => { return username === process.env.USERNAME && password === process.env.PASSWORD }})
Konfigurasi ini cocok jika anda ingin:
- Mengambil kredensial dari environment variable.
- Melakukan validasi terhadap database.
- Membuat logika otentikasi yang lebih fleksibel.
Default Config
Section titled “Default Config”disini ada tambahan config default yaitu
Nama | Tipe | Default | Deskripsi |
---|---|---|---|
realm | string | "Secure Area" | Label area proteksi yang ditampilkan pada prompt login browser. |
invalidAuthMessage | string | object | function | undefined | Pesan yang dikirimkan ketika autentikasi gagal. Bisa berupa string, object (JSON), atau fungsi async (ctx) => string | object . |
Dan ada 3 lagi config bawaan middleware silakan cek halaman berikut Middleware Config.