Jumat, 16 Maret 2018

Seri Belajar Ruby on Rails Bagian 9 - Membuat Autentikasi dengan Devise

Setelah pada artikel sebelumya kita telah berhasil membuat validasi, relasi, dan menggunakan scope pada Rails, selanjutnya kita akan membuat fitur autentikasi  dengan menggunakan  Devise.

Devise ? Untuk  apa  ?

Devise  adalah salah satu gem pada  Rails yang berfungsi untuk menangani masalah autentika dengan mudah. Devise memiliki kelebihan sebagai  berikut.
  • Rack based
  • Lengkap dengan  Model, View, dan Cotroller
  • Megizinkan suatu aplikasi untuk memiliki multiple model untuk melakukan  autentikasi
  • Dibuat secara modularitas, sehingga memudahkan penggunaan gem ini dengan hanya menggunakan fitur/module yang dibutuhkan.
Gem ?.  Apa itu gem ?. Pada Rails terdapat file konfigurasi yang digunakan untuk me-list gem mana saja yang diguakan. Gem ini seperti library atau perpustakaan yang biasanya dapat ditemukan di RubyGems. 

Cara Menambahkan Gem Devise pada Rails

Untuk menginstall devise ini dapat dilakukan dengan membuka Gemfile pada folder aplikasi. Misalnya, saya akan meggunakan devise untuk aplikasi homework_management

Letak Gemfile pada Project
Tambahkan script berikut pada Gemfile.
gem 'devise'
dan pada terminal pindah ke folder project yang digunakan, dan jalankan perintah berikut.
bundle install

Mengatur Gem Devise pada Project

Jalankan perintah berikut pada terminal
rails generate devise:install
Perintah tersebut akan menghasilkan file konfigurasi pada folder config/initializers/devise.rb.

Konfigurasi Devise

Pastikan bahwa konfigurasi default url options pada environtments files telah dibuat. Untuk mengatur default url options, buka file environtment pada folder config/environtments/development.rb. 
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
end
sebelum keyword end. 

Lalu buka file application.html.erb yang terletak pada folder app/views/layouts/ dan tambahkan baris berikut.
tepat di atas  
<%= yield %>

Konfigurasi User Model

Selajutnya  kita akan membuat user model,  dimana model ini berfungsi untuk menyimpan data-data user. Untuk pembuatan user model ini akan diintegrasikan dengan devise. Caranya  adalah  pada terminal jalankan perintah berikut.
rails g devise user
Dengan menjalankan perintah tersebut, maka akan menghasilkan file migrasi user dan model user.



Setelah itu jangan lupa untuk menjalankan perintah 
rake db:migrate
untuk memproses file migrasi yang telah dibuat.

Setelah melakukan generate devise maka pada file config/routes.rb akan mengalami perubahan. Perubahan tersebut adalah sebagai berikut.
Coba jalankan perintah berikut pada terminal dan lihat url apa saja yang dihasilkan dari men-generate devise
rails routes


Membuat User untuk Pertama Kali

Langkah selanjutnya, kita akan melakukan modifikasi pada view untuk menampilkan link login dan register ketika pertama kali membuka halaman http://localhost:3000/

Untuk membuat user, jika perintah tadi telah dilakukan dengan benar maka untuk mendaftarkan user tinggal buka url http://localhost:3000/users/sign_up. Halaman tersebut adalah halaman untuk membuat/registrasi user.

Halaman Registrasi User



Modifikasi View


Langkah selanjutnya, kita akan melakukan modifikasi pada view untuk menampilkan form login ketika pertama kali membuka halaman http://localhost:3000/


Yang pertama akan kita lakukan adalah membuat navigasi yang akan muncul di setiap halaman. Navigasi ini untuk mengetahui informasi mengenai user login dan link untuk logout. Navigasi ini akan dibuat secara parsial. Perlu diingat, penamaan untuk file parsial harus diawali dengan tanda "_" (underscore).
Lalu, pada bagian atas pada tipa view yang membutuhkan login kita tambahkan script berikut. Contohnya pada halaman tambah data homework.

Modifikasi Controller


Selanjutnya, kita perlu melakukan modifikasi pada controller. Yang harus dilakukan adalah tambahkan script berikut pada application_controller.rb yang terletak pada folder app/controllers.

Sekarang coba jalankan kembali project dengan cara menjalankan perintah berikut pada terminal. lalu lakukan restart terhadap server terminal

Langkah-langkah di atas adalah salah satu cara untuk penggunaan gem devise pada project Rails. Gem "DEVISE" ini sangat berguna untuk menangani autentikasi di Rails dengan segala kemudahan yang diberikannya.

Sekian untuk pembelajaran kali ini mengenai penggunaan "DEVISE". Diharapkan tutorial ini menjadi salah satu pembelajaran yang mudah dimengerti bagi kita semua.


Fathara Annisa Azka | C-aio Indonesia

Tidak ada komentar:

Posting Komentar