5 [Devise](https://github.com/plataformatec/devise) is a flexible authentication
11 Rails 3: Add the following to your Gemfile
17 Install devise in your project
19 $ rails generate devise:install
21 Generate devise for your model
23 $ rails generate devise MODEL
26 (Optional) Generate devise views
28 $ rails generate devise:views
36 destroy_user_session_path (Logout)
37 new_user_session_path (Login)
38 edit_user_registration_path (Edit registration)
39 new_user_registration_path (Register new user)
44 before_filter :authenticate_user!
51 class User < ActiveRecord::Base
52 devise :database_authenticatable,
63 create_table :users do |t|
64 t.database_authenticatable
75 ### Authenticated and unauthenticated routes
78 root :to => 'home#index'
82 root :to => 'dashboard#index'
87 get 'sign_in', :to => 'devise/sessions#new'
94 # Session routes for Authenticatable (default)
95 new_user_session GET /users/sign_in {:controller=>"devise/sessions", :action=>"new"}
96 user_session POST /users/sign_in {:controller=>"devise/sessions", :action=>"create"}
97 destroy_user_session GET /users/sign_out {:controller=>"devise/sessions", :action=>"destroy"}
99 # Password routes for Recoverable, if User model has :recoverable configured
100 new_user_password GET /users/password/new(.:format) {:controller=>"devise/passwords", :action=>"new"}
101 edit_user_password GET /users/password/edit(.:format) {:controller=>"devise/passwords", :action=>"edit"}
102 user_password PUT /users/password(.:format) {:controller=>"devise/passwords", :action=>"update"}
103 POST /users/password(.:format) {:controller=>"devise/passwords", :action=>"create"}
105 # Confirmation routes for Confirmable, if User model has :confirmable configured
106 new_user_confirmation GET /users/confirmation/new(.:format) {:controller=>"devise/confirmations", :action=>"new"}
107 user_confirmation GET /users/confirmation(.:format) {:controller=>"devise/confirmations", :action=>"show"}
108 POST /users/confirmation(.:format) {:controller=>"devise/confirmations", :action=>"create"}
110 ### Customizing devise_for
116 :sign_out => 'logout',
117 :password => 'secret',
118 :confirmation => 'verification',
119 :unlock => 'unblock',
120 :registration => 'register',
121 :sign_up => 'cmon_let_me_in' }
126 include Devise::TestHelpers
127 https://github.com/plataformatec/devise/blob/1094ba65aac1d37713f2cba71f9edad76b5ca274/lib/devise/test_helpers.rb