shopify_app 2.1.2 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/generators/shopify_app/shopify_app_generator.rb +2 -0
- data/lib/generators/shopify_app/templates/app/controllers/login_controller.rb +5 -11
- data/lib/generators/shopify_app/templates/config/initializers/omniauth.rb +12 -0
- data/lib/shopify_app.rb +1 -0
- data/lib/shopify_app/login_protection.rb +2 -0
- data/lib/shopify_app/version.rb +1 -1
- data/shopify_app.gemspec +3 -2
- metadata +22 -9
@@ -13,6 +13,7 @@ class ShopifyAppGenerator < Rails::Generators::Base
|
|
13
13
|
def copy_files
|
14
14
|
directory 'app'
|
15
15
|
directory 'public'
|
16
|
+
directory 'config'
|
16
17
|
end
|
17
18
|
|
18
19
|
def remove_static_index
|
@@ -45,6 +46,7 @@ class ShopifyAppGenerator < Rails::Generators::Base
|
|
45
46
|
route "match 'login' => 'login#index', :as => :login"
|
46
47
|
route "match 'design' => 'home#design'"
|
47
48
|
route "match 'welcome' => 'home#welcome'"
|
49
|
+
route "match 'auth/shopify/callback' => 'login#finalize'"
|
48
50
|
end
|
49
51
|
end
|
50
52
|
|
@@ -10,23 +10,17 @@ class LoginController < ApplicationController
|
|
10
10
|
|
11
11
|
def authenticate
|
12
12
|
if params[:shop].present?
|
13
|
-
redirect_to
|
13
|
+
redirect_to "/auth/shopify?shop=#{params[:shop].to_s.strip}"
|
14
14
|
else
|
15
15
|
redirect_to return_address
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
# Shopify redirects the logged-in user back to this action along with
|
20
|
-
# the authorization token t.
|
21
|
-
#
|
22
|
-
# This token is later combined with the developer's shared secret to form
|
23
|
-
# the password used to call API methods.
|
24
19
|
def finalize
|
25
|
-
|
26
|
-
|
27
|
-
session[:shopify] =
|
28
|
-
flash[:notice] = "Logged in
|
29
|
-
|
20
|
+
if response = request.env['omniauth.auth']
|
21
|
+
sess = ShopifyAPI::Session.new(params['shop'], response['credentials']['token'])
|
22
|
+
session[:shopify] = sess
|
23
|
+
flash[:notice] = "Logged in"
|
30
24
|
redirect_to return_address
|
31
25
|
session[:return_to] = nil
|
32
26
|
else
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Rails.application.config.middleware.use OmniAuth::Builder do
|
2
|
+
provider :shopify,
|
3
|
+
ShopifyApp.configuration.api_key,
|
4
|
+
ShopifyApp.configuration.secret,
|
5
|
+
:scope => 'write_script_tags,write_shipping,write_orders,read_orders,read_products,read_customers,read_content',
|
6
|
+
:setup => lambda {|env|
|
7
|
+
params = Rack::Utils.parse_query(env['QUERY_STRING'])
|
8
|
+
site_url = "https://#{params['shop']}"
|
9
|
+
Rails.logger.info(env['omniauth.strategy'])
|
10
|
+
env['omniauth.strategy'].options[:client_options][:site] = site_url
|
11
|
+
}
|
12
|
+
end
|
data/lib/shopify_app.rb
CHANGED
@@ -4,9 +4,11 @@ module ShopifyApp::LoginProtection
|
|
4
4
|
begin
|
5
5
|
# session[:shopify] set in LoginController#finalize
|
6
6
|
ShopifyAPI::Base.site = session[:shopify].site
|
7
|
+
ShopifyAPI::Base.activate_session(session[:shopify])
|
7
8
|
yield
|
8
9
|
ensure
|
9
10
|
ShopifyAPI::Base.site = nil
|
11
|
+
ShopifyAPI::Base.clear_session
|
10
12
|
end
|
11
13
|
else
|
12
14
|
session[:return_to] = request.fullpath
|
data/lib/shopify_app/version.rb
CHANGED
data/shopify_app.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.version = ShopifyApp::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
9
|
s.author = "Shopify"
|
10
|
-
s.email = ["edward@shopify.com", "willem@shopify.com"]
|
10
|
+
s.email = ["edward@shopify.com", "willem@shopify.com", "david.underwood@shopify.com"]
|
11
11
|
s.homepage = "http://www.shopify.com/developers"
|
12
12
|
s.summary = %q{This gem is used to get quickly started with the Shopify API}
|
13
13
|
s.description = %q{Creates a basic login controller for authenticating with your Shop and also a product controller which lets your edit your products easily.}
|
@@ -15,7 +15,8 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.rubyforge_project = "shopify-api"
|
16
16
|
|
17
17
|
s.add_runtime_dependency('rails', '~> 3.1')
|
18
|
-
s.add_runtime_dependency('shopify_api', '
|
18
|
+
s.add_runtime_dependency('shopify_api', '3.0.0')
|
19
|
+
s.add_runtime_dependency('omniauth-shopify-oauth2', '1.0.0')
|
19
20
|
|
20
21
|
s.add_development_dependency('rake')
|
21
22
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shopify_app
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-05-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70366611983880 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,21 +21,32 @@ dependencies:
|
|
21
21
|
version: '3.1'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70366611983880
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: shopify_api
|
27
|
-
requirement: &
|
27
|
+
requirement: &70366611983380 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - =
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: 3.0.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70366611983380
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: omniauth-shopify-oauth2
|
38
|
+
requirement: &70366611982920 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - =
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.0.0
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70366611982920
|
36
47
|
- !ruby/object:Gem::Dependency
|
37
48
|
name: rake
|
38
|
-
requirement: &
|
49
|
+
requirement: &70366611982540 !ruby/object:Gem::Requirement
|
39
50
|
none: false
|
40
51
|
requirements:
|
41
52
|
- - ! '>='
|
@@ -43,12 +54,13 @@ dependencies:
|
|
43
54
|
version: '0'
|
44
55
|
type: :development
|
45
56
|
prerelease: false
|
46
|
-
version_requirements: *
|
57
|
+
version_requirements: *70366611982540
|
47
58
|
description: Creates a basic login controller for authenticating with your Shop and
|
48
59
|
also a product controller which lets your edit your products easily.
|
49
60
|
email:
|
50
61
|
- edward@shopify.com
|
51
62
|
- willem@shopify.com
|
63
|
+
- david.underwood@shopify.com
|
52
64
|
executables: []
|
53
65
|
extensions: []
|
54
66
|
extra_rdoc_files: []
|
@@ -83,6 +95,7 @@ files:
|
|
83
95
|
- lib/generators/shopify_app/templates/app/views/home/welcome.html.erb
|
84
96
|
- lib/generators/shopify_app/templates/app/views/layouts/application.html.erb
|
85
97
|
- lib/generators/shopify_app/templates/app/views/login/index.html.erb
|
98
|
+
- lib/generators/shopify_app/templates/config/initializers/omniauth.rb
|
86
99
|
- lib/generators/shopify_app/templates/public/404.html
|
87
100
|
- lib/generators/shopify_app/templates/public/422.html
|
88
101
|
- lib/generators/shopify_app/templates/public/500.html
|