class Twimock::API::OAuth

OAuthでブラウザ認証するAPI GET api.twimock.com/authenticate?oauth_token=xxx

認証キャンセル後の画面を返すAPI POST api.twimock.com/oauth/authorize

OAuthでブラウザ認証するAPI GET api.twimock.com/authenticate?oauth_token=xxx

Twitter OAuth で利用するAPI Request Token を発行する

Public Class Methods

new(app) click to toggle source
# File lib/twimock/api/oauth.rb, line 13
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/twimock/api/oauth.rb, line 17
def call(env)
  @app.call(env)
end

Private Instance Methods

called?(env) click to toggle source
# File lib/twimock/api/oauth.rb, line 44
def called?(env)
  request = Rack::Request.new(env)
  request.request_method == self.class::METHOD && request.path == self.class::PATH
end
generate_error_response(status) click to toggle source
# File lib/twimock/api/oauth.rb, line 76
def generate_error_response(status)
  error_code = @error.class.to_s.split("::").last
  body   = { error: { code: error_code } }.to_json
  header = { "Content-Type"   => "application/json; charset=utf-8",
             "Content-Length" => body.bytesize.to_s }
  [ status, header, [ body ] ]
end
internal_server_error() click to toggle source
# File lib/twimock/api/oauth.rb, line 53
def internal_server_error
  generate_error_response(500)
end
parse_authorization_header(authorization_header) click to toggle source
# File lib/twimock/api/oauth.rb, line 57
def parse_authorization_header(authorization_header)
  authorization = case authorization_header
  when Array  then authorization_header.first
  when String then authorization_header
  else ""
  end

  oauth = Hashie::Mash.new
  authorization.scan(/oauth_(\w+)=\"([\w%-.]+)\"/) do |key, value|
    oauth[key] = value
  end
  oauth
end
query_string_to_hash(query_string) click to toggle source
# File lib/twimock/api/oauth.rb, line 71
def query_string_to_hash(query_string)
  ary = URI.decode(query_string).split("&").inject([]){|a, s| a << s.split("=")}
  Hashie::Mash.new(Hash[ary])
end
unauthorized() click to toggle source
# File lib/twimock/api/oauth.rb, line 49
def unauthorized
  generate_error_response(401)
end
validate_access_token(access_token_string, application_id) click to toggle source
# File lib/twimock/api/oauth.rb, line 36
def validate_access_token(access_token_string, application_id)
  return false if access_token_string.blank?
  return false unless access_token = Twimock::AccessToken.find_by_string(access_token_string)
  return false unless access_token.application_id
  return false unless access_token.application_id == application_id
  true
end
validate_consumer_key(consumer_key) click to toggle source
# File lib/twimock/api/oauth.rb, line 23
def validate_consumer_key(consumer_key)
  return false if consumer_key.blank?
  return false unless application = Twimock::Application.find_by_api_key(consumer_key)
  true
end
validate_request_token(request_token) click to toggle source
# File lib/twimock/api/oauth.rb, line 29
def validate_request_token(request_token)
  return false if request_token.blank?
  return false unless request_token = Twimock::RequestToken.find_by_string(request_token)
  return false unless request_token.application_id
  true
end