Tìm hiểu về Gem Devise on Rails
Bài đăng này đã không được cập nhật trong 10 năm
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
trongconfig/routes.rb
(mặc định devise sẽ tìm kiếmuser_root_path
,nếu không định nghĩaroot_path
cho users):
map.root :controller => "your_controller"
- Chạy migrations :
User.create!(:email => "your@email.com", :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ớiapp
của bạn bao gồm các file local cho cấu hình cácflash mesage
:
script/generate devise_views
All rights reserved