Sha256: 1f6ee179617b92d76b3586aa1a85602cd5bcd8a0ebad6b6d7f15b7867b60bf91
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
require 'omniauth/strategies/oauth2' module OmniAuth module Strategies class Shopify < OmniAuth::Strategies::OAuth2 # Available scopes: content themes products customers orders script_tags shipping # read_* or write_* DEFAULT_SCOPE = 'read_products' option :client_options, { :authorize_url => '/admin/oauth/authorize', :token_url => '/admin/oauth/access_token' } option :callback_url option :provider_ignores_state, true option :myshopify_domain, 'myshopify.com' uid { URI.parse(options[:client_options][:site]).host } def valid_site? !!(/\A(https|http)\:\/\/[a-zA-Z0-9][a-zA-Z0-9\-]*\.#{Regexp.quote(options[:myshopify_domain])}[\/]?\z/ =~ options[:client_options][:site]) end def fix_https options[:client_options][:site].gsub!(/\Ahttp\:/, 'https:') end def setup_phase super fix_https end def request_phase if valid_site? super else fail!(:invalid_site) end end def callback_phase if valid_site? super else fail!(:invalid_site) end end def authorize_params super.tap do |params| params[:scope] ||= DEFAULT_SCOPE end end def callback_url options[:callback_url] || super end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
omniauth-shopify-oauth2-1.1.8 | lib/omniauth/strategies/shopify.rb |