反正自己也是新手,生怕學來的東西給忘了……
ruby1.9.3-p194 rails3.2.8
rails new authen --skip-bundle
cd authen
rails g model user name:string salt:string hashed_pswd:string
rake db:migrate
class user < activerecord::base
attr_accessor :password, :pswd_confirmation
attr_accessible :password, :name
validates_presence_of :name
validates_uniqueness_of :name
before_create :generate_hashed
def self.authentication(name, ps)
user = user.find_by_name(name)
return user if user && user.hashed_pswd == digest::sha256.hexdigest(user.salt + ps)
endprivate
def generate_hashed
self.salt = array.new(10).join
self.hashed_pswd = digest::sha256.hexdigest(self.salt + @password)
endend
rails g controller sessions
def current_user
if session[:user_id]
cur_user = user.find(session[:user_id])
return cur_user
endend
<%= form_tag :sessions do %>
<%= label :name, "登入名:" %>
<%= text_field_tag :name, params[:name] %>
<%= label :password, "密碼: " %>
<%= password_field_tag :password, params[:password] %>
<%= submit_tag "登入" %>
<% end %>
@current_user = current_user
在主頁中適當位置新增
<% if @current_user %>
當前使用者是:<%= @current_user.name %>
<%= link_to "logout", logout_path %>
<% end %>
編輯config/routes.rb
新增:
match '/logout' => 'sessions#logout', :as => "logout"
resources :sessions
rails s
瀏覽器進入http://localhost:3000/sessions/new進行登入
最後,在實際運用中最好還是使用成熟的gem,比如devise,否則還要自己實現一些其他功能。
rails使用者認證
反正自己也是新手,生怕學來的東西給忘了 ruby1.9.3 p194 rails3.2.8 rails new authen skip bundle cd authen rails g model user name string salt string hashed pswd string rak...
Apache使用者認證
一.基本的apache使用者認證方法 若對某一目錄下的檔案如 home ftp pub需要做到使用者認證,則在httpd.conf 中加入下面的行 options indexes followsymlinks allowoverride authconfig order allow,deny all...
使用者登入認證
salt 用來跟原始密碼合在一起的乙個字串。原始密碼加上鹽值後組成乙個新的字串,然後用加密函式對其加密。使用者進入登入頁面登入,post提交資料到login方法,根據使用者名稱作為條件從資料庫查詢是否存在使用者名稱,不存在返回false,存在繼續驗證密碼是否正確,不正確返回false,當密碼驗證成功...