使用者認證

阅读更多
转自: http://ihower.tw/rails3/auth.html

使用者認證

Quality, Speed or Cheap. Pick two. - Unknown
Authentication: 使用 Devise

devise是一套使用者認證(Authentication)套件。

編輯 Gemfile 加上

  gem 'devise'
輸入bundle install安裝此套件

輸入rails g devise:install產生devise設定檔

編輯 config/environments/development.rb 和 production.rb 加入寄信時預設的網站網址:

  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
確認 app/views/layouts/application.html.erb layout 中可以顯示 flash 訊息,例如

 

<%= notice %>


 

<%= alert %>


確認 routes.rb 中有設定網站首頁位置,例如

  root :to => "welcome#index"
輸入rails g devise user產生 User model 及 Migration

如果需要E-mail驗證功能,可以編輯app/models/user.rb和migration將confirmable功能打開

輸入rails generate devise:views產生樣板,這會包括有註冊、登入、忘記密碼、Email等等頁面,放在app/views/devise目錄下。

輸入bundle exec rake db:migrate建立資料表

用法

在需要登入的 controller 加上before_filter :authenticate_user!

可以在 Layout 中加上登入登出選單

   <% if current_user %>
       <%= link_to('登出', destroy_user_session_path, :method => :delete) %> |
     <%= link_to('修改密碼', edit_registration_path(:user)) %>
   <% else %>
     <%= link_to('註冊', new_registration_path(:user)) %> |
        <%= link_to('登入', new_session_path(:user)) %>
   <% end %>
Authentication: 使用 Omniauth

Omniauth

Authentication: DIY

Authentication in Rails 3.1
Authentication: SSO

可以採用CAS標準,推薦以下的Sinatra實作:

rubycas-server
ClassyCAS
Authorization

cancan
declarative_authorization
更多 More

你可能感兴趣的:(使用者認證)