𝗔𝘂𝘁𝗲𝗻𝘁𝗶𝗸𝗮𝘀𝗶 𝗝𝗪𝗧 𝗱𝗮𝗹𝗮𝗺 𝗙𝗮𝘀𝘁𝗔𝗣𝗜
Autentikasi bertanya "Siapa Anda?" Otorisasi bertanya "Apa yang bisa Anda lakukan?"
Jika Anda membangun platform AI tanpa keamanan, siapa pun dapat mengakses data pribadi. Mereka dapat mengubah profil pengguna atau melihat kemajuan siswa. Anda harus melindungi sumber daya Anda.
JWT (JSON Web Token) menyelesaikan masalah ini. Alih-alih mengirimkan kata sandi pada setiap permintaan, pengguna mengirimkan token yang aman.
Alur kerjanya:
- Daftar pengguna
- Hash kata sandi
- Login dan verifikasi kredensial
- Buat token JWT
- Akses rute yang dilindungi
Anda sebaiknya menggunakan alat-alat ini:
- passlib dengan bcrypt untuk hashing kata sandi
- python-jose untuk pembuatan token
Jangan pernah menyimpan kata sandi dalam bentuk teks biasa. Jika peretas mencuri database Anda, mereka akan mendapatkan segalanya. Sebagai gantinya, simpanlah sebuah hash.
Sebuah hash mengubah "password123" menjadi deretan karakter acak yang panjang. Anda tidak dapat mengubah hash kembali menjadi kata sandi. Anda hanya memverifikasi apakah input cocok dengan hash tersebut.
Cara membangunnya:
Registrasi Pengguna mengirimkan username dan kata sandi. Anda melakukan hashing pada kata sandi tersebut dan menyimpannya di database Anda.
Login Pengguna mengirimkan kredensial. Anda mencari hash yang tersimpan. Anda menggunakan library untuk memverifikasi kata sandi. Jika cocok, Anda membuat sebuah token.
Pembuatan JWT Sebuah token berisi data pengguna dan waktu kedaluwarsa. Anda menandatangani token tersebut dengan kunci rahasia (secret key). Jika pengguna mencoba mengubah data, tanda tangan (signature) akan gagal.
Respon login terlihat seperti ini: { "access_token": "eyJhbGciOiJIUzI1Ni...", "token_type": "bearer" }
Sekarang pengguna memegang kunci ke sistem Anda.
Di bagian selanjutnya, kita akan mempelajari cara menggunakan token ini untuk melindungi rute tertentu dan mengelola peran pengguna.
Ringkasan langkah-langkah:
- Daftar pengguna
- Hash dan simpan kata sandi
- Verifikasi kata sandi saat login
- Buat JWT yang telah ditandatangani
Sumber: https://dev.to/zeroshotanu/fastapi-for-ai-engineers-part-6-jwt-authentication-in-fastapi-5fpk
Komunitas pembelajaran opsional: https://t.me/GyaanSetuAi