Authentication
Proses memverifikasi identitas user (siapa dia).
Authentication adalah proses memverifikasi identitas user — memastikan user adalah siapa yang dia klaim. Metode authentication: Password-based (user mengirim email+password, server verifikasi dengan hash yang tersimpan), Token-based (server mengirim token setelah login sukses, token dikirim client di setiap request — JWT adalah format token paling populer), OAuth (login via third-party seperti Google, GitHub — user tidak perlu membuat password baru), dan Multi-Factor Authentication (MFA — memerlukan verifikasi tambahan seperti OTP, fingerprint). Jangan pernah menyimpan password plain text — selalu hash dengan bcrypt, Argon2, atau scrypt.
Contoh Kode
// Password hashing dengan bcrypt
import { hash, compare } from 'bcrypt';
// Saat registrasi
const hashedPassword = await hash(password, 12); // 12 = salt rounds
// Saat login
const isValid = await compare(inputPassword, storedHash);
if (!isValid) throw new Error('Invalid credentials');