class OmniAuth::Strategies::Draugiem

Authenticate to draugiem.lv and frype.com and others.

@example Basic Rails Usage

Add this to config/initializers/omniauth.rb

  Rails.application.config.middleware.use OmniAuth::Builder do
    provider :draugiem, 'App id', 'API Key'
  end

@example Basic Rack example

use Rack::Session::Cookie
use OmniAuth::Strategies::Draugiem, 'App id', 'API Key'

Protected Instance Methods

callback_phase() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/draugiem.rb, line 41
def callback_phase
  if request.params['dr_auth_status'] == 'ok' && request.params['dr_auth_code']
    response = RestClient.get('https://api.draugiem.lv/json/', { :params => draugiem_authorize_params(request.params['dr_auth_code']) })
    auth = MultiJson.decode(response.to_s)
    unless auth['error']
      @auth_data = auth
      super
    else
      fail!(auth['error']['code'].to_s,auth["error"]["description"].to_s)
    end
  else
    fail!(:invalid_request)
  end
rescue Exception => e
  fail!(:invalid_response, e)
end
request_phase() click to toggle source
# File lib/omniauth/strategies/draugiem.rb, line 31
def request_phase
  params = {
    :app => options.app_id,
    :redirect => callback_url,
    :hash => Digest::MD5.hexdigest("#{options.api_key}#{callback_url}")
  }
  query_string = params.collect{ |key,value| "#{key}=#{Rack::Utils.escape(value)}" }.join('&')
  redirect "https://api.draugiem.lv/authorize/?#{query_string}"
end

Private Instance Methods

draugiem_authorize_params(code) click to toggle source
# File lib/omniauth/strategies/draugiem.rb, line 90
def draugiem_authorize_params code
  {
    :action => 'authorize',
    :app => options.api_key,
    :code => code
  }
end