Static Auth
Static authentication && authorization in rails
Installation
Rails3 only Add the following line to your Gemfile:
gem 'static_auth'
Example
models/admin_session.rb
class AdminSession < StaticAuth::Session
roles :admin, :manager
password_for :admin, "123456"
password_for :manager, proc { "123456".reverse }
set_encryption_method :md5
end
controllers/admin/index_controller.rb
def index
@session = AdminSession.new(session)
render :template => @session.authorized? ? "admin/index" : "admin/index/login"
end
def login
@session = AdminSession.new(session)
@session.attributes = params[:admin_session]
@session.save
if @session.authorized?
redirect_to admin_path
else
render :template => "admin/index/login"
end
end
def logout
@session.logout_all
redirect_to admin_path
end
views/admin/login.html.erb
= form_for @session do |s|
= s.text_field :role
= s.text_field :password
= s.submit "Login"
Setting encryption method
class AdminSession < StaticAuth::Session
roles :admin, :manager
password_for :admin, "123456"
password_for :manager, proc { "123456".reverse }
# It always receives a string
encryption_methods[:custom] = proc { |value| MD5::md5(value + "secret salt") }
set_encryption_method :custom # Default methods: :plain, :md5, :sha1
end
Todo
-
Salting
-
BCrypt