Tìm hiểu về Gem Devise on Rails

I. Rails and Devise

  • Devise được sử dụng cho việc xác thực và quản lý người dùng. Chỉ nên sử dụng trong trường hợp bạn là 1 developer đã có kinh nghiệm. Devise hỗ trợ 1 số tính năng :
Navigation bar
Sign up (create account)
Login
“Forgot password?” feature
“Remember me” (stay logged in) feature
Admin?
Current_user ?
  • Cấu hình yêu cầu :
The Ruby language – version 2.1
The Rails gem – version 4.1
  • Generate :

Chạy lệnh dưới đây để cài đặt môi trường :

$ rails new rails-devise -m https://raw.github.com/RailsApps/rails-composer/master/composer.rb

2. Getting Started :

2.1 Use RVM

Nên sử dụng rvm để tạo 1 tập project-specific gemset cho ứng dụng.

2.2. Gems :

Các gem sử dụng trong app :

  • devise – xác thực và quản lý user :
. Database Authenticatable: bảo mật và lưu trữ password trong DB, kiểm tra validate khi login.
. Omniauthable: thêm Omniauth (https://github.com/intridea/omniauth) support.
. Confirmable: gửi email với confirmation instructions và thẩm tra tài khoản đã được xác nhận trong quá trình đăng nhập.
. Recoverable: reset user password và gửi reset instructions.
. Registerable: xử lý tiến trình đăng ký (sign up) đồng thời cho phép chỉnh sửa và xóa tài khoản user.
. Rememberable: tạo và xóa token cho việc ghi nhớ user cho cookie đã lưu.
. Trackable: theo dõi tài khoản, timestamps và địa chỉ IP.
. Timeoutable: cắt session mà không hoạt động trong 1 khoảng thời gian xác định.
. Validatable: cung cấp validation cho email and password.
. Lockable: khóa tài khoản sau 1 số lần đăng nhập không thành công xác định. Bỏ khóa qua email hoặc sau 1 khoảng thời gian nhất định.
  • Gems giúp đơn giản hóa lập trình :
better_errors – help khi có lỗi
quiet_assets – các thông báo trong log
rails_layout – tạo file cho layout
  • Chọn front-end framework:
bootstrap-sass – Bootstrap cho CSS và JavaScript
foundation-rails – Zurb Foundation cho CSS và JavaScript

3. Getting started :

Link tham khảo : https://github.com/plataformatec/devise

II. Ví dụ về Devise : xác thực user

  • Cài đặt Devise
gem sources -a http://gemcutter.org/
gem install devise

  • Thêm vào environment:
config.gem "warden", :version => "0.5.1"
config.gem "devise", :version => "0.4.1"

  • Cài gem :
script/generate devise_install

Nó sẽ khởi tạo trong config/initializers/devise.rb , hãy kiểm tra lại các tùy chọn của cấu hình devise, có 1 tính năng thêm từ phiên bản 0.1 : remember_for period (thời gian remember token hợp lệ).

  • Tiếp theo tạo model User :
script/generate devise User

Lệnh trên khởi tạo 1 model User và map.devise_for :users trong routes.rb. Trước khi thực hiện chỉ cần cấu hình default_url_options cho ActionMailer trong config/environments/development.rb

  • Cấu hình cho development :
config.action_mailer.default_url_options = { :host => 'localhost:3000' }

  • Hãy chắc chắn có ít nhất 1 route được đặt tên là root trong config/routes.rb (mặc định devise sẽ tìm kiếm user_root_path,nếu không định nghĩa root_path cho users):
map.root :controller => "your_controller"

  • Chạy migrations :
User.create!(:email => "[email protected]", :password => "secret")

Bây giờ khởi động server, tạo các account và chúng ta có thể đăng nhập.

  • Lệnh dưới đây có sẽ tạo 1 copy của tất cả devise views tới app của bạn bao gồm các file local cho cấu hình các flash mesage:
script/generate devise_views

All Rights Reserved