Sha256: 157d84e0182e27ba471c0bd24b6d3189a6e4988d51aa517725a0242a64bc9370
Contents?: true
Size: 1.19 KB
Versions: 1
Compression:
Stored size: 1.19 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 uid { URI.parse(options[:client_options][:site]).host } def valid_site? return /\A(https|http)\:\/\/[a-zA-Z0-9][a-zA-Z0-9\-]*\.myshopify\.com[\/]?\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 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.3 | lib/omniauth/strategies/shopify.rb |