Konfigurasi

Tambah gem

gem 'devise'

Lalu bundle install biasa, lalu generate

rails generate devise:install

Lalu generate pada model…

rails generate devise MODEL

Ex

rails generate devise User

Ingat model itu tanpa S alias single… selanjutnya konfigurasi routing config/routes.rb tambahin ini kalau belum ada

devise_for :users

Penggunaan

Taruh di controller atau di application controller untuk autentikasi keseluruhan

  before_action :authenticate_user!

Helper yang ada :

  • user_signed_in?
  • current_user
  • user_session

Kalau modelnya bukan User alias Member

  • before_action :authenticate_member!
  • member_signed_in?
  • current_member
  • member_session

Konfiguresi pada model

devise :database_authenticatable, :registerable, :confirmable, :recoverable, stretches: 20

Selengkapnya baca file /config/initializers/devise.rb

Strong Parameters

sign_in (Devise::SessionsController#create)
sign_up (Devise::RegistrationsController#create
account_update (Devise::RegistrationsController#update)

Rails 4.x pake strong parameters

  class ApplicationController < ActionController::Base
    before_action :configure_permitted_parameters, if: :devise_controller?

    protected

    def configure_permitted_parameters
      devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :email) }
    end
  end

Konfigurasi pada view

rails generate devise:views

Kasus pada model banyak

rails generate devise:views users
rails generate devise:views members

Jadinya di users/sessions/new dan admins/sessions/new dan default pada devise/sessions/new

Omniouth

config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo'

Pada config/initializers/devise.rb