class OmniAuth::Strategies::Taobao

Public Instance Methods

callback_phase() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/taobao.rb, line 15
def callback_phase
  ignore_sandbox_ssl_verify!
  super
end
raw_info() click to toggle source
# File lib/omniauth/strategies/taobao.rb, line 33
def raw_info
  @rawinfo ||= (!!options.taobao_user_role ? fetch_raw_info : fetch_raw_info_from_params)
end
request_phase() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/taobao.rb, line 10
def request_phase
  options[:state] ||= '1'
  super
end

Private Instance Methods

fetch_raw_info() click to toggle source
# File lib/omniauth/strategies/taobao.rb, line 50
def fetch_raw_info
  service = ::Taobao::TOP::Service.new(options.client_id, options.client_secret, :session => @access_token.token)
  res = service.get(raw_info_method, :fields => raw_info_fields)
  res.error? ? {} : res.body.user
end
fetch_raw_info_from_params() click to toggle source
# File lib/omniauth/strategies/taobao.rb, line 56
def fetch_raw_info_from_params
  attrs = [["user_id", "taobao_user_id"],["nick", "taobao_user_nick"]]
  Hash[attrs.collect{|arr| [arr[0], @access_token[arr[1]]]}].select{|k,v| v != nil}
end
ignore_sandbox_ssl_verify!() click to toggle source
# File lib/omniauth/strategies/taobao.rb, line 62
def ignore_sandbox_ssl_verify!
  if ::Taobao::TOP.sandbox? && defined?(::OpenSSL::SSL::VERIFY_PEER)
    ::OpenSSL::SSL.send :remove_const, :VERIFY_PEER
    ::OpenSSL::SSL.const_set :VERIFY_PEER, 0
  end
end
raw_info_fields() click to toggle source
# File lib/omniauth/strategies/taobao.rb, line 42
def raw_info_fields
  {
    "buyer" => "user_id,nick,sex,avatar,buyer_credit,has_shop,vip_info",
    "seller" => "user_id,nick,sex,avatar,seller_credit,type,has_shop,is_golden_seller,vip_info",
    "user" => "user_id,nick,sex,avatar,email,buyer_credit,seller_credit,location,type,has_shop,vip_info"
  }[options.taobao_user_role.to_s]
end
raw_info_method() click to toggle source
# File lib/omniauth/strategies/taobao.rb, line 38
def raw_info_method
  ["taobao", "user", "#{options.taobao_user_role}", "get"].uniq.join(".")
end