Class: OmniAuth::Strategies::Parse

Inherits:
Object
  • Object
show all
Includes:
OmniAuth::Strategy
Defined in:
lib/omniauth/strategies/parse.rb

Constant Summary collapse

PARSE_LOGIN =
{:site => "https://api.parse.com", :path => "1/login"}

Instance Method Summary collapse

Instance Method Details

#callback_phaseObject



22
23
24
25
26
27
# File 'lib/omniauth/strategies/parse.rb', line 22

def callback_phase
  @raw_data = get_user_data
  return fail!(:invalid_credentials) unless @raw_data
  @parsed_data = JSON.parse @raw_data
  super
end

#get_user_dataObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/omniauth/strategies/parse.rb', line 35

def get_user_data

  raise "application_id is required for initialization" unless options[:application_id]
  raise "rest_api_key is required for initialization"   unless options[:rest_api_key]

  conn = Faraday.new(:url => PARSE_LOGIN[:site]) do |req|
    req.request :url_encoded
    req.adapter  Faraday.default_adapter
  end
  result = conn.get do |req|
    req.url PARSE_LOGIN[:path]
    req.headers['X-Parse-Application-Id'] = options[:application_id]
    req.headers['X-Parse-REST-API-Key']   = options[:rest_api_key]
    req.params['username']                = request.params["username"]
    req.params['password']                = request.params["password"]
  end
  unless result.status == 200
    #logging?
    return false
  end
  return result.body
end

#request_phaseObject



14
15
16
17
18
19
20
# File 'lib/omniauth/strategies/parse.rb', line 14

def request_phase
  form = OmniAuth::Form.new(:title => "Parse.com Info", :url => callback_path)
    form.text_field :username, :username
    form.password_field :password, :password
  form.button "Sign In"
  form.to_response
end