Sekarang ane mau ngenalin gem devise. Siapa tahu setelah kenal jadi jatuh cinta. Hehehe. Gem devise ini mempermudah kerjaan dalam hal autentikasi user di Rails. Semuanya begitu simpel, jadi kita ga perlu repot lagi nanganin yang namanya login, logout, register, change password dll. Hebatkan ya.
Biar kenal lebih jauh bisa dibaca dokumentasi disini.
Nah langsung aja buka file Gemfile. Input kode dibawah
gem 'devise'
Lalu di terminal (ctrl+alt+t) karena ane pake linux. Kalo windows di cmd nya ya.bundle install
rails generate devise:install
Nah tambahin kode dikit di config/environments/development.rb
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }Ke terminal lagi . ubah MODEL jadi nama model yang mau dibuat(bisa admin, user, dll asal belum ada aja di routenya)
rails generate devise MODEL
ane pake model user jadi
rails generate devise User
Lalu jangan lupa run migrate
rails db:migrate
Untuk generate view devisenya :rails generate devise:views
Setelah generate, devise lengkap membuat tampilan loginnya seperti dibawah ini. Ketik localhost:3000/users/sign_in di Url link.
Sebelum login kita signup dulu, isi email dan passwordnya
Dan Selamat anda berhasil masuk.
Untuk logout ane tambahin sedikit kode di app/views/layouts/application.html.erb
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<% if user_signed_in? %>
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Blog</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Teknologi</a>
<a class="dropdown-item" href="#">Contoh</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="<%= destroy_user_session_path %>" data-method="delete">Logout</a>
<% else %>
<a class="dropdown-item" href="<%= new_user_session_path %>">Login</a>
</div>
<% end %>
</li>
</ul>
</div>
Dan kurang lebih tampilannya seperti ini
Saat klik Logout , flash alert signed out successfully muncul tandanya user telah logout.
Dan itulah kemudahan user autentikasi dengan gem devise. Sepertinya tidak membutuhkan waktu 5 menit untuk membuat login, logout, dll.
0 Komentar