Tìm hiểu về Gem Devise on Rails
Bài đăng này đã không được cập nhật trong 9 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