Sha256: 3fbab715192d07f34e8a15abfc06a79651dfd1e5f09e4a8f63dea36668fc0ad1
Contents?: true
Size: 1.93 KB
Versions: 1
Compression:
Stored size: 1.93 KB
Contents
require 'omniauth/strategies/oauth2' module OmniAuth module Strategies class SoundCloud < OmniAuth::Strategies::OAuth2 DEFAULT_SCOPE = 'non-expiring' option :name, "soundcloud" option :client_options, { :site => 'https://api.soundcloud.com', :authorize_url => '/connect', :token_url => '/oauth2/token' } option :access_token_options, { :header_format => 'OAuth %s', :param_name => 'access_token' } uid { raw_info['id'] } info do prune!({ 'nickname' => raw_info['username'], 'name' => raw_info['full_name'], 'image' => raw_info['avatar_url'], 'description' => raw_info['description'], 'urls' => { 'Website' => raw_info['website'] }, 'location' => raw_info['city'] }) end credentials do prune!({ 'expires' => access_token.expires?, 'expires_at' => access_token.expires_at }) end extra do prune!({ 'raw_info' => raw_info }) end def raw_info @raw_info ||= access_token.get('/me.json').parsed end def build_access_token super.tap do |token| token.options.merge!(access_token_options) end end def access_token_options options.access_token_options.inject({}) { |h,(k,v)| h[k.to_sym] = v; h } end def authorize_params super.tap do |params| %w[display state scope].each { |v| params[v.to_sym] = request.params[v] if request.params[v] } params[:scope] ||= DEFAULT_SCOPE end end private def prune!(hash) hash.delete_if do |_, value| prune!(value) if value.is_a?(Hash) value.nil? || (value.respond_to?(:empty?) && value.empty?) end end end end end OmniAuth.config.add_camelization 'soundcloud', 'SoundCloud'
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
omniauth-soundcloud-1.0.1 | lib/omniauth/strategies/soundcloud.rb |