class OmniAuth::Strategies::Qiita
Constants
- DEFAULT_SCOPE
Public Instance Methods
build_access_token()
click to toggle source
# File lib/omniauth/strategies/qiita.rb, line 99 def build_access_token handle_access_token_response(request_access_token) end
build_params_for_access_token()
click to toggle source
# File lib/omniauth/strategies/qiita.rb, line 72 def build_params_for_access_token { code: request.params['code'], client_id: options.client_id, client_secret: options.client_secret } end
build_request_option_for_access_token()
click to toggle source
# File lib/omniauth/strategies/qiita.rb, line 80 def build_request_option_for_access_token { headers: { 'Content-Type' => 'application/json' }, body: MultiJson.dump(build_params_for_access_token), }.merge(options['token_params']) end
handle_access_token_response(response)
click to toggle source
# File lib/omniauth/strategies/qiita.rb, line 93 def handle_access_token_response response error = Error.new(response) fail(error) if client.options[:raise_errors] && !(response.parsed.is_a?(Hash) && response.parsed['access_token']) ::OAuth2::AccessToken.from_hash(client, response.parsed.merge(deep_symbolize(options.auth_token_params))) end
raw_info()
click to toggle source
# File lib/omniauth/strategies/qiita.rb, line 40 def raw_info @raw_info ||= access_token.get('/api/v2/authenticated_user').parsed || {} end
request_access_token()
click to toggle source
# File lib/omniauth/strategies/qiita.rb, line 87 def request_access_token client.request(:post, client.token_url, build_request_option_for_access_token).tap do |res| res.parsed['access_token'] = res.parsed.delete('token') end end
set_scope(params)
click to toggle source
# File lib/omniauth/strategies/qiita.rb, line 68 def set_scope params params[:scope] ||= request.params['scope'] || DEFAULT_SCOPE end
urls(raw_info)
click to toggle source
# File lib/omniauth/strategies/qiita.rb, line 44 def urls(raw_info) hash = {} [ ['Facebook', 'facebook_id', ->(id){"https://www.facebook.com/#{id}"}], ['Github', 'github_login_name', ->(id){"https://github.com/#{id}"}], ['LinkedIn', 'linkedin_id', ->(id){"https://www.linkedin.com/in/#{id}"}], ['Twitter', 'twitter_screen_name', ->(id){"https://twitter.com/#{id}"}], ['Website', 'website_url', ->(url){url}] ].each do |label, key, url_gen| if raw_info.key? key and raw_info[key] and raw_info[key].length > 0 hash[label] = url_gen.call(raw_info[key]) end end hash end