Simple Authentication Menggunakan GO dan Mysql Part #2

Rizal Yogi Pratama
UNIKOM Codelabs
Published in
3 min readJan 8, 2018

Yo what’s up guys , jika kalin masuk ke tutorial part berarti kalian udah beres ya di part#1 , kali ini disini akan membahas tentang login itu sendiri menggunakan bahasa GO dan database Mysql dengan melanjutkan project yang sebelumnya, jadi jangan dihapus ya yang sebelumnya :).

Library yang dibutuhkan

  1. Bcrypt
  2. Session

Tapi jangan khawatir karena semua library tersebut telah kita install di tutorial part 1 .

Yap kita lanjut lagi, pada tutorial kali ini yang akan kita buat yaitu

  1. Membuat View Login
  2. Membuat Membuat Fungsi Login dan Session
  3. Membuat Halaman Home
  4. Membuat Fungsi Home
  5. Membuat Fungsi Logout

Seperti biasa tidak perlu berbasa basi, langsung saja masuk ke sesi tutorial dimulai dari step 1.

Membuat Halaman Login

Untuk membuat halaman login sekarang kalian buka file login.html dan masukkan kode dibawah ini

Membuat Fungsi Login

Yaps pada section kali ini kita akan membuat fungsi login dan ikuti kode dibawah ini.

Pada kode diatas langkah yang dilakukan pertama kali yaitu pengecekan session, yap fungsi session.Start(w,r) digunakan untuk memulai session di server kita, kemudian kita akan mengecek adapah ada session username atau tidak, jika ada maka akan redirect ke halaman “/” atau home.

Sedangkan jika session tidak ada maka akan ada validasi lagi , apakah method yang digunakan untuk memanggil fungsi login merupakan method POST ? jika tidak maka akan memanggil halaman login.html yang telah kita buat sebelumnya.

Lalu jika mehod merupakan POST maka kita akan mengambil value username dan password dari form input dan menyimpannya di sebuah variabel.

Kemudian pada variabel users , kita akan mengambil data pengguna berdasarkan username yang dimasukkan.

Kemudian pada fungsi bcrypt.CompareHashAndPassword, disini kita akan mebandingkan password yang ada di database dengan password yang dimasukkan, dan tentu saja password tersebut sudah di-encrypt.

Setelah melakukan pengecekan , maka apabila password sama dengan password yang dimasukkan, maka fungsi bcrypt akan membalikkan nilai nil, begitu sebaliknya. Ketika password dan username benar maka username dan nama pengguna akan dimasukkan ke dalam session dan kemudian akan dialihkan ke halaman home, namun jika password salah maka akan dialihkan ke halaman Login.

Membuat Halaman Home

Pada kode {{ .username}} digunakan untuk manampilkan variabel yang dikirimkan melalui fungsi home yang akan kita buat nanti.

Membuat Fungsi Home

Seperti biasa, setiap kali kita mau menggunakan session maka selalu awali dengan memanggil fungsi sessions.Start. Setelah memanggil fungsi sessions maka akan dilakukan validasi terlebih dahulu apakah session tersedia atau tidak, jika tidak maka akan dialihkan ke halaman login.

Namun, jika session tersedia maka kita akan langsung memanggil halaman home.html dengan mengirimkan data berupa username yang diambil dari session dengan message “Welcome to the Go !”.

Kemudian seperti biasa, selalu gunakan function handler untuk mngetahui jika terjadi error, setelah itu kita jalankan fungsi untuk memanggil halaman home.html .

Membuat Fungsi Logout

Yaps, pada fungsi diatas akan kita gunakan untuk menghapus sessions pada server dengan menggunakan fungsi sessions.Clear() dan sessions.Destroy() yang kemudian akan dialihkan ke halaman login.

Yaah selesai sudah tutorial kali ini , sekarang kalian jalankan project dan coba apakah berhasil atau tidak.

Jika ada pertanyaan komen aja yaa :), code lengkap ada di Github !

Terima Kasih sudah mengikuti tutorial kali ini

~ Happy Coding

--

--

Rizal Yogi Pratama
UNIKOM Codelabs

Backend Developer & Fulltime Superheroes. Living the day by Writing Code, Photography, Chocolates, and Fighting the Super Villain.