Sha256: 784f1d2be92f83d102547714ede326ce2078bf94b56a91028d32fca01400b1b8

Contents?: true

Size: 1.99 KB

Versions: 23

Compression:

Stored size: 1.99 KB

Contents

module AuthlogicConnect::Oauth::Variables
  include AuthlogicConnect::Oauth::State
  
  # this doesn't do anything yet, just to show what variables
  # we need from the form
  def oauth_variables
    [:oauth_provider]
  end
    
  # this comes straight from either the params or session.
  # it is required for most of the other accessors in here
  def oauth_provider
    from_session_or_params(:oauth_provider)
  end
  
  # next is "token_class", which is found from the oauth_provider key.
  # it is the OauthToken subclass, such as TwitterToken, which we
  # use as the api for accessing oauth and saving the response to the database for a user.
  def token_class
    AuthlogicConnect.token(oauth_provider) unless oauth_provider.blank?
  end
  
  # This should go...
  def oauth_response
    auth_params && oauth_token
  end
  
  # the token from the response parameters
  def oauth_token
    return nil unless token_class
    oauth_version == 1.0 ? auth_params[:oauth_token] : auth_params[:code]
  end
  
  # the version of oauth we're using.  Accessed from the OauthToken subclass
  def oauth_version
    token_class.oauth_version
  end
  
  # the Oauth gem consumer, whereby we can make requests to the server
  def oauth_consumer
    token_class.consumer
  end
  
  def stored_oauth_token_and_secret
    if auth_controller?
      {:key => auth_params[:_key], :token => auth_params[:_token], :secret => auth_params[:_secret]}
    else
      {:key => nil, :token => nil, :secret => nil}
    end
  end
  
  # this is a thick method.
  # it gives you the final key and secret that we will store in the database
  def oauth_token_and_secret
    return stored_oauth_token_and_secret if stored_oauth_token_and_secret?
    token_class.get_token_and_secret(
      :token          => auth_session[:oauth_request_token],
      :secret         => oauth_version == 1.0 ? auth_session[:oauth_request_token_secret] : oauth_token,
      :oauth_verifier => auth_params[:oauth_verifier],
      :redirect_uri   => auth_callback_url
    )
  end
  
end

Version data entries

23 entries across 23 versions & 7 rubygems

Version Path
robdimarco-authlogic-connect-0.0.6 lib/authlogic_connect/oauth/variables.rb
anideo-authlogic-connect-0.0.6 lib/authlogic_connect/oauth/variables.rb
jspooner-authlogic-connect-0.0.20 lib/authlogic_connect/oauth/variables.rb
jspooner-authlogic-connect-0.0.19 lib/authlogic_connect/oauth/variables.rb
foreverman-authlogic-connect-0.0.4 lib/authlogic_connect/oauth/variables.rb
foreverman-authlogic-connect-0.0.3 lib/authlogic_connect/oauth/variables.rb
foreverman-authlogic-connect-0.0.2 lib/authlogic_connect/oauth/variables.rb
foreverman-authlogic-connect-0.0.1 lib/authlogic_connect/oauth/variables.rb
foreverman-authlogic-connect-0.0.6 lib/authlogic_connect/oauth/variables.rb
authlogic-connect-andrewacove-0.5.7 lib/authlogic_connect/oauth/variables.rb
authlogic-connect-0.0.6 lib/authlogic_connect/oauth/variables.rb
authlogic-connect-0.0.5.1 lib/authlogic_connect/oauth/variables.rb
authlogic-connect-0.0.5 lib/authlogic_connect/oauth/variables.rb
authlogic-connect-andrewacove-0.5.6 lib/authlogic_connect/oauth/variables.rb
authlogic-connect-andrewacove-0.5.5 lib/authlogic_connect/oauth/variables.rb
authlogic-connect-andrewacove-0.5.4 lib/authlogic_connect/oauth/variables.rb
authlogic-connect-andrewacove-0.5.2 lib/authlogic_connect/oauth/variables.rb
authlogic-connect-andrewacove-0.5.0 lib/authlogic_connect/oauth/variables.rb
authlogic-connect-0.0.4.06 lib/authlogic_connect/oauth/variables.rb
authlogic-connect-x-0.0.4.05x lib/authlogic_connect/oauth/variables.rb