Lewati ke konten

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.

GamanJS adalah kerangka kerja untuk aplikasi backend, Anda dapat menginstall menggunakan manajer paket favorit Anda:

Terminal window
npm install @gaman/basic-auth

berikut adalah cara implementasi @gaman/basic-auth

index.ts
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

AppRoutes.ts
import { basicAuth } from "@gaman/basic-auth"
route.get('/user').middleware(basicAuth({
username: 'admin',
password: 'admin123'
}))

Disini Basic Auth punya 2 config yang berbeda satunya static satunya dynamic.

berikut adalah contoh config static

basicAuth({
username: 'admin',
password: "admin123",
})

Konfigurasi ini sangat sederhana dan cocok untuk proteksi endpoint dasar.

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.

disini ada tambahan config default yaitu

NamaTipeDefaultDeskripsi
realmstring"Secure Area"Label area proteksi yang ditampilkan pada prompt login browser.
invalidAuthMessagestring | object | functionundefinedPesan 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.