Autentikasi Dasar (phx.gen.auth)
Penjelasan
Phoenix menyediakan generator mix phx.gen.auth yang membuat sistem autentikasi lengkap secara otomatis: schema User dengan password ter-hash (bcrypt/argon2), controller registrasi, login, logout, konfirmasi email, reset password, beserta plug untuk melindungi route yang butuh login. Ini menghemat waktu besar dibanding menulis autentikasi dari nol, dan mengikuti best practice keamanan Elixir. Setelah generator dijalankan, kita perlu menjalankan migration yang dihasilkan, lalu route dan plug require_authenticated_user otomatis ditambahkan ke router.ex. Kita masih perlu menyesuaikan tampilan (template) dan menambahkan field tambahan pada User sesuai kebutuhan aplikasi.
Contoh Konsep
# Generate sistem autentikasi lengkap untuk resource User
mix phx.gen.auth Accounts User users
# Ambil dependency baru (bcrypt_elixir dsb) dan jalankan migration
mix deps.get
mix ecto.migrate
# Router.ex otomatis mendapat scope baru, contoh:
# scope "/", TokoAppWeb do
# pipe_through [:browser, :require_authenticated_user]
# live "/produk/baru", ProdukLive.New
# end
Praktikum
Jalankan generator autentikasi untuk resource Penulis di blog_app, lalu migrate database-nya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Baca file router.ex setelah generator dijalankan, karena phx.gen.auth menambahkan beberapa pipeline dan scope baru yang perlu dipahami sebelum menambahkan route lain di dekatnya.