Module: Sorcery::Controller::Submodules::External::Providers::Vk::VkClient
- Includes:
- Base::BaseClient
- Defined in:
- lib/sorcery/controller/submodules/external/providers/vk.rb
Class Attribute Summary collapse
-
.access_token ⇒ Object
readonly
Returns the value of attribute access_token.
-
.auth_path ⇒ Object
Returns the value of attribute auth_path.
-
.callback_url ⇒ Object
Returns the value of attribute callback_url.
-
.key ⇒ Object
Returns the value of attribute key.
-
.secret ⇒ Object
Returns the value of attribute secret.
-
.site ⇒ Object
Returns the value of attribute site.
-
.state ⇒ Object
Returns the value of attribute state.
-
.token_path ⇒ Object
Returns the value of attribute token_path.
-
.user_info_mapping ⇒ Object
Returns the value of attribute user_info_mapping.
Class Method Summary collapse
- .get_user_hash(access_token) ⇒ Object
- .has_callback? ⇒ Boolean
- .init ⇒ Object
-
.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.
-
.process_callback(params, session) ⇒ Object
tries to login the user from access token.
Methods included from Sorcery::Controller::Submodules::External::Protocols::Oauth2
authorize_url, build_client, get_access_token, oauth_version
Methods included from Base::BaseClient
Class Attribute Details
.access_token ⇒ Object (readonly)
Returns the value of attribute access_token.
40 41 42 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 40 def access_token @access_token end |
.auth_path ⇒ Object
Returns the value of attribute auth_path.
32 33 34 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 32 def auth_path @auth_path end |
.callback_url ⇒ Object
Returns the value of attribute callback_url.
32 33 34 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 32 def callback_url @callback_url end |
.key ⇒ Object
Returns the value of attribute key.
32 33 34 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 32 def key @key end |
.secret ⇒ Object
Returns the value of attribute secret.
32 33 34 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 32 def secret @secret end |
.site ⇒ Object
Returns the value of attribute site.
32 33 34 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 32 def site @site end |
.state ⇒ Object
Returns the value of attribute state.
32 33 34 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 32 def state @state end |
.token_path ⇒ Object
Returns the value of attribute token_path.
32 33 34 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 32 def token_path @token_path end |
.user_info_mapping ⇒ Object
Returns the value of attribute user_info_mapping.
32 33 34 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 32 def user_info_mapping @user_info_mapping end |
Class Method Details
.get_user_hash(access_token) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 52 def get_user_hash(access_token) 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
71 72 73 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 71 def has_callback? true end |
.init ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 44 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.
77 78 79 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 77 def login_url(params,session) self.({:authorize_url => @auth_path}) end |
.process_callback(params, session) ⇒ Object
tries to login the user from access token
82 83 84 85 86 87 88 89 90 |
# File 'lib/sorcery/controller/submodules/external/providers/vk.rb', line 82 def process_callback(params,session) args = {} args.merge!({:code => params[:code]}) if params[:code] = { :token_url => @token_path, :token_method => :post } return self.get_access_token(args, ) end |