railsの認証

rails

railsを使ってないチームはhtpasswdでパスワードファイル作って,.htaccessでやってた.

railsを使ってたので,authenticate_or_request_with_http_basicを使って終わり.

適当なcontrollerに以下を記述.

class ...Controller < ...::Base

  before_filter :basic

  # (略)

  private
  def basic
    authenticate_or_request_with_http_basic do |user, pass|
      user == 'user' && pass == 'pass'
    end
  end
end

でもこれだと一切暗号化してないので...な人は以下で簡単に暗号化 (以下もmd5なのでセキュアとは言えない)

require 'digest'

 class AdminController < ApplicationController
  before_filter :authenticate

  def authenticate
    authenticate_or_request_with_http_basic('Administration') do |username, password|
      md5_of_password = Digest::MD5.hexdigest(password)
      username == 'admin' && md5_of_password == '5ebe2294ecd0e0f08eab7690d2a6ee69'
    end
  end
end

参照:http://apidock.com/rails/ActionController/HttpAuthentication/Basic/ControllerMethods/authenticate_or_request_with_http_basic

以上.

Go Top