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-authpnpm install @gaman/basic-authyarn install @gaman/basic-authbun install @gaman/basic-authCara 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.