sinatraでBasic認証

  • 25
    Like
  • 0
    Comment
More than 1 year has passed since last update.

特定のアクションのみに認証をかける場合

helpers do
  def protected!
    unless authorized?
      response['WWW-Authenticate'] = %(Basic realm="Restricted Area")
      throw(:halt, [401, "Not authorized\n"])
    end
  end

  def authorized?
    @auth ||=  Rack::Auth::Basic::Request.new(request.env)
    @auth.provided? && @auth.basic? && @auth.credentials && @auth.credentials == ['changeme', 'changeme']
  end
end

get '/protected' do
  protected!
  "Protected page"
end