class StackMob::Rack::SimpleOAuthProvider

Public Class Methods

new(app) click to toggle source
# File lib/stackmob/rack/simple_oauth_provider.rb, line 22
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/stackmob/rack/simple_oauth_provider.rb, line 26
def call(env)
  request = ::Rack::Request.new(env)
  signature = OAuth::Signature.build(request, :token_secret => "", :consumer_secret => StackMob.secret)
  if signature.verify          
    authorized(env)
  else
    auth_failed(env)
  end       
rescue OAuth::Signature::UnknownSignatureMethod
  auth_failed(env)
end

Private Instance Methods

auth_failed(env) click to toggle source
# File lib/stackmob/rack/simple_oauth_provider.rb, line 43
def auth_failed(env)
  if pass_through?
    authorized(env)
  else
    [401, {}, "Not Authorized\n"]
  end
end
authorized(env) click to toggle source
# File lib/stackmob/rack/simple_oauth_provider.rb, line 38
def authorized(env)
  @app.call(env)
end
pass_through?() click to toggle source
# File lib/stackmob/rack/simple_oauth_provider.rb, line 52
def pass_through?
  !StackMob.is_production? && StackMob.config['development']['no_oauth']
end