Module: Sorcery::Controller::Submodules::External::Providers::Vk::VkClient

Extended by:
Sorcery::Controller::Submodules::External::Protocols::Oauth2
Defined in:
lib/sorcery/controller/submodules/external/providers/vk.rb

Class Attribute Summary collapse

Class Method Summary collapse

Methods included from Sorcery::Controller::Submodules::External::Protocols::Oauth2

authorize_url, build_client, get_access_token, oauth_version

Class Attribute Details

.access_tokenObject (readonly)

Returns the value of attribute access_token.



38
39
40
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 38

def access_token
  @access_token
end

.auth_pathObject

Returns the value of attribute auth_path.



31
32
33
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 31

def auth_path
  @auth_path
end

.callback_urlObject

Returns the value of attribute callback_url.



31
32
33
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 31

def callback_url
  @callback_url
end

.keyObject

Returns the value of attribute key.



31
32
33
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 31

def key
  @key
end

.secretObject

Returns the value of attribute secret.



31
32
33
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 31

def secret
  @secret
end

.siteObject

Returns the value of attribute site.



31
32
33
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 31

def site
  @site
end

.token_pathObject

Returns the value of attribute token_path.



31
32
33
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 31

def token_path
  @token_path
end

.user_info_mappingObject

Returns the value of attribute user_info_mapping.



31
32
33
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 31

def 
  @user_info_mapping
end

Class Method Details

.get_user_hashObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 50

def get_user_hash
  user_hash = {}

  params = {
    :access_token => @access_token.token,
    :uids         => @access_token.params["user_id"],
    :fields       => @user_info_mapping.values.join(",")
  }

  response = @access_token.get(@user_info_url, :params => params)
  if user_hash[:user_info] = JSON.parse(response.body)
    user_hash[:user_info] = user_hash[:user_info]["response"][0]
    # add full_name - useful if you do not store it in separate fields
    user_hash[:user_info]["full_name"] = [user_hash[:user_info]["first_name"], user_hash[:user_info]["last_name"]].join(" ")
    user_hash[:uid] = user_hash[:user_info]["uid"]
  end
  user_hash
end

.has_callback?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 69

def has_callback?
  true
end

.initObject



42
43
44
45
46
47
48
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 42

def init
  @site           = "https://oauth.vk.com/"
  @user_info_url  = "https://api.vk.com/method/getProfiles"
  @auth_path      = "/authorize"
  @token_path     = "/access_token"
  @user_info_mapping = {}
end

.login_url(params, session) ⇒ Object

calculates and returns the url to which the user should be redirected, to get authenticated at the external provider’s site.



75
76
77
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 75

def (params,session)
  self.authorize_url({:authorize_url => @auth_path})
end

.process_callback(params, session) ⇒ Object

tries to login the user from access token



80
81
82
83
84
85
86
87
88
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 80

def process_callback(params,session)
  args = {}
  args.merge!({:code => params[:code]}) if params[:code]
  options = {
    :token_url    => @token_path,
    :token_method => :post
  }
  @access_token = self.get_access_token(args, options)
end