rails使用者認證

2021-09-01 11:03:34 字數 1898 閱讀 7177

反正自己也是新手,生怕學來的東西給忘了……

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,當密碼驗證成功...