Class: OmniAuth::Strategies::SmugMug

Inherits:
OAuth
  • Object
show all
Defined in:
lib/omniauth/strategies/smug_mug.rb

Overview

Authenticate to SmugMug via OAuth and retrieve basic user information. Usage: use OmniAuth::Strategies::SmugMug, 'consumerkey', 'consumersecret'

Instance Attribute Summary

Attributes inherited from OAuth

#consumer_key, #consumer_options, #consumer_secret, #name

Instance Method Summary collapse

Methods inherited from OAuth

#callback_phase, #consumer, #request_phase, #unique_id

Constructor Details

#initialize(app, consumer_key = nil, consumer_secret = nil, options = {}, &block) ⇒ SmugMug

Returns a new instance of SmugMug.



12
13
14
15
16
17
18
# File 'lib/omniauth/strategies/smug_mug.rb', line 12

def initialize(app, consumer_key = nil, consumer_secret = nil, options = {}, &block)
  super(app, :smugmug, consumer_key, consumer_secret,
          {:site               => 'http://api.smugmug.com',
          :request_token_path => "/services/oauth/getRequestToken.mg",
          :access_token_path  => "/services/oauth/getAccessToken.mg",
          :authorize_path     => "/services/oauth/authorize.mg"}, options, &block)
end

Instance Method Details

#auth_hashObject



20
21
22
23
24
25
26
# File 'lib/omniauth/strategies/smug_mug.rb', line 20

def auth_hash
  OmniAuth::Utils.deep_merge(super, {
    'uid' => user_hash['id'],
    'user_info' => ,
    'extra' => { 'user_hash' => user_hash }
  })
end

#user_hashObject

info as supplied by SmugMug



37
38
39
# File 'lib/omniauth/strategies/smug_mug.rb', line 37

def user_hash
  @user_hash ||= MultiJson.decode(@access_token.get('/services/api/json/1.2.2/?method=smugmug.auth.checkAccessToken').body)['Auth']['User']
end

#user_infoObject

user info according to schema



29
30
31
32
33
34
# File 'lib/omniauth/strategies/smug_mug.rb', line 29

def 
  {
    'nickname' => user_hash['NickName'],
    'name' => user_hash['NickName']
  }
end