shopify_app 22.2.1 → 22.3.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.
- checksums.yaml +4 -4
- data/.nvmrc +1 -1
- data/CHANGELOG.md +15 -1
- data/CONTRIBUTING.md +0 -5
- data/Gemfile.lock +75 -71
- data/README.md +8 -1
- data/app/assets/javascripts/shopify_app/redirect.js +3 -9
- data/app/controllers/shopify_app/sessions_controller.rb +2 -1
- data/app/views/shopify_app/shared/redirect.html.erb +5 -1
- data/config/locales/cs.yml +0 -18
- data/config/locales/da.yml +0 -15
- data/config/locales/de.yml +0 -17
- data/config/locales/en.yml +0 -11
- data/config/locales/es.yml +0 -17
- data/config/locales/fi.yml +0 -15
- data/config/locales/fr.yml +0 -18
- data/config/locales/it.yml +0 -16
- data/config/locales/ja.yml +0 -12
- data/config/locales/ko.yml +0 -14
- data/config/locales/nb.yml +0 -16
- data/config/locales/nl.yml +0 -16
- data/config/locales/pl.yml +0 -16
- data/config/locales/pt-BR.yml +0 -16
- data/config/locales/pt-PT.yml +0 -17
- data/config/locales/sv.yml +0 -16
- data/config/locales/th.yml +0 -15
- data/config/locales/tr.yml +0 -17
- data/config/locales/vi.yml +0 -17
- data/config/locales/zh-CN.yml +0 -11
- data/config/locales/zh-TW.yml +0 -11
- data/docs/Upgrading.md +17 -3
- data/docs/shopify_app/sessions.md +4 -1
- data/karma.conf.js +0 -3
- data/lib/generators/shopify_app/install/templates/shopify_app.rb.tt +2 -2
- data/lib/shopify_app/configuration.rb +6 -4
- data/lib/shopify_app/controller_concerns/csrf_protection.rb +2 -1
- data/lib/shopify_app/controller_concerns/embedded_app.rb +5 -1
- data/lib/shopify_app/controller_concerns/localization.rb +1 -1
- data/lib/shopify_app/controller_concerns/login_protection.rb +8 -1
- data/lib/shopify_app/controller_concerns/token_exchange.rb +12 -8
- data/lib/shopify_app/controller_concerns/with_shopify_id_token.rb +16 -9
- data/lib/shopify_app/engine.rb +4 -9
- data/lib/shopify_app/utils.rb +10 -1
- data/lib/shopify_app/version.rb +1 -1
- data/package.json +1 -1
- data/shopify_app.gemspec +2 -1
- data/yarn.lock +8 -8
- metadata +23 -26
- data/app/assets/images/storage_access.svg +0 -1
- data/app/assets/javascripts/shopify_app/app_bridge_3.7.8.js +0 -10
- data/app/assets/javascripts/shopify_app/app_bridge_redirect.js +0 -22
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 46bfbed5702afb3db0446577b3846c68c54b51e3453dd1569f0ad0eb727554c8
|
|
4
|
+
data.tar.gz: 1171f8c433863622ca5c73742c258e02cc59fba3840edcdef1c4002223171bd4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 59f3a11a7789c4c9bca786cb8ec99b59ed085529b649d4269b439e98c975e5cff97faef3f0b139d10a472b4142d513eba2a3859908cac37a5d9b354996f380ed
|
|
7
|
+
data.tar.gz: 44ca61a7b14e1ad309bd24afec9d344592b7d399d44c83961e89687ed9557666c4e6f0e65e57268d8dfd178664266757815135cc5b37f5f95abc6814222a0e55
|
data/.nvmrc
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
20.10.0
|
data/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,28 @@
|
|
|
1
1
|
Unreleased
|
|
2
2
|
----------
|
|
3
3
|
|
|
4
|
+
22.3.0 (July 24, 2024)
|
|
5
|
+
----------
|
|
6
|
+
- Deprecate `ShopifyApp::JWTMiddleware`. And remove internal usage. Any existing app code relying on decoded JWT contents set from `request.env` should instead include the `WithShopifyIdToken` concern and call its respective methods. [#1861](https://github.com/Shopify/shopify_app/pull/1861) [Migration Guide](/docs/Upgrading.md#v2300---removed-shopifyappjwtmiddleware)
|
|
7
|
+
- Handle scenario when invalid URI is passed to `sanitize_shop_domain` [#1852](https://github.com/Shopify/shopify_app/pull/1852)
|
|
8
|
+
- Remove references to old JS files during asset precompile [#1865](https://github.com/Shopify/shopify_app/pull/1865)
|
|
9
|
+
- Remove old translation keys for `enable_cookies_*`, `top_level_interaction_*` and `request_storage_access_*` [#1865](https://github.com/Shopify/shopify_app/pull/1865)
|
|
10
|
+
- Add invalid id token handling for `current_shopify_domain` method [#1868](https://github.com/Shopify/shopify_app/pull/1868)
|
|
11
|
+
- Keep original path and params when redirecting deep links to embed [#1869](https://github.com/Shopify/shopify_app/pull/1869)
|
|
12
|
+
- Fix managed install path for SPIN environments [#1877](https://github.com/Shopify/shopify_app/pull/1877)
|
|
13
|
+
- Migrate fullpage redirect to App Bridge CDN [#1870](https://github.com/Shopify/shopify_app/pull/1870)
|
|
14
|
+
- Improve embedded requests detection with `Sec-Fetch-Dest` header [#1873](https://github.com/Shopify/shopify_app/pull/1873)
|
|
15
|
+
- Fix bug where locale is not read from session if locale param is not present in app request [#1878](https://github.com/Shopify/shopify_app/pull/1878)
|
|
16
|
+
|
|
4
17
|
22.2.1 (May 6,2024)
|
|
18
|
+
----------
|
|
5
19
|
* Patch - Don't delete session on 401 errors during retry in `with_token_refetch` [#1844](https://github.com/Shopify/shopify_app/pull/1844)
|
|
6
20
|
|
|
7
21
|
22.2.0 (May 2,2024)
|
|
8
22
|
----------
|
|
9
23
|
* Add new zero redirect authorization strategy - `Token Exchange`.
|
|
10
24
|
- This strategy replaces the existing OAuth flow for embedded apps and remove the redirects that were previously necessary to complete OAuth.
|
|
11
|
-
See ["New embedded app authorization strategy"](/README.md/#new-embedded-app-authorization-strategy) for how to enable this feature.
|
|
25
|
+
See ["New embedded app authorization strategy (Token Exchange)"](/README.md/#new-embedded-app-authorization-strategy-token-exchange) for how to enable this feature.
|
|
12
26
|
- Related PRs: [#1817](https://github.com/Shopify/shopify_app/pull/1817),
|
|
13
27
|
[#1818](https://github.com/Shopify/shopify_app/pull/1818),
|
|
14
28
|
[#1819](https://github.com/Shopify/shopify_app/pull/1819),
|
data/CONTRIBUTING.md
CHANGED
|
@@ -89,8 +89,3 @@ To run tests, you'll need to make sure that your development environment is setu
|
|
|
89
89
|
* To run all tests: `bundle exec rake test`
|
|
90
90
|
* To run a specific test file: `bundle exec rake test TEST=test/controllers/callback_controller_test.rb`
|
|
91
91
|
* To run a single test: `bundle exec rake test TEST=test/controllers/callback_controller_test.rb:50` where `50` is the line number on or inside the test case.
|
|
92
|
-
|
|
93
|
-
### App Bridge client
|
|
94
|
-
|
|
95
|
-
This gem ships with a UMD version of the App Bridge client. It lives inside the assets folder: `app/assets/javascripts/shopify_app/`. To update the client, simply download the UMD build from [unpkg.com](https://unpkg.com/@shopify/app-bridge) and save it into the folder.
|
|
96
|
-
Please follow the convention of including the client version number in the filename. Finally, change the reference to the new App Bridge client inside `app/assets/javascripts/shopify_app/app_bridge_redirect.js`.
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
shopify_app (22.
|
|
4
|
+
shopify_app (22.3.0)
|
|
5
5
|
activeresource
|
|
6
6
|
addressable (~> 2.7)
|
|
7
7
|
jwt (>= 2.2.3)
|
|
@@ -13,68 +13,68 @@ PATH
|
|
|
13
13
|
GEM
|
|
14
14
|
remote: https://rubygems.org/
|
|
15
15
|
specs:
|
|
16
|
-
actioncable (6.1.7.
|
|
17
|
-
actionpack (= 6.1.7.
|
|
18
|
-
activesupport (= 6.1.7.
|
|
16
|
+
actioncable (6.1.7.8)
|
|
17
|
+
actionpack (= 6.1.7.8)
|
|
18
|
+
activesupport (= 6.1.7.8)
|
|
19
19
|
nio4r (~> 2.0)
|
|
20
20
|
websocket-driver (>= 0.6.1)
|
|
21
|
-
actionmailbox (6.1.7.
|
|
22
|
-
actionpack (= 6.1.7.
|
|
23
|
-
activejob (= 6.1.7.
|
|
24
|
-
activerecord (= 6.1.7.
|
|
25
|
-
activestorage (= 6.1.7.
|
|
26
|
-
activesupport (= 6.1.7.
|
|
21
|
+
actionmailbox (6.1.7.8)
|
|
22
|
+
actionpack (= 6.1.7.8)
|
|
23
|
+
activejob (= 6.1.7.8)
|
|
24
|
+
activerecord (= 6.1.7.8)
|
|
25
|
+
activestorage (= 6.1.7.8)
|
|
26
|
+
activesupport (= 6.1.7.8)
|
|
27
27
|
mail (>= 2.7.1)
|
|
28
|
-
actionmailer (6.1.7.
|
|
29
|
-
actionpack (= 6.1.7.
|
|
30
|
-
actionview (= 6.1.7.
|
|
31
|
-
activejob (= 6.1.7.
|
|
32
|
-
activesupport (= 6.1.7.
|
|
28
|
+
actionmailer (6.1.7.8)
|
|
29
|
+
actionpack (= 6.1.7.8)
|
|
30
|
+
actionview (= 6.1.7.8)
|
|
31
|
+
activejob (= 6.1.7.8)
|
|
32
|
+
activesupport (= 6.1.7.8)
|
|
33
33
|
mail (~> 2.5, >= 2.5.4)
|
|
34
34
|
rails-dom-testing (~> 2.0)
|
|
35
|
-
actionpack (6.1.7.
|
|
36
|
-
actionview (= 6.1.7.
|
|
37
|
-
activesupport (= 6.1.7.
|
|
35
|
+
actionpack (6.1.7.8)
|
|
36
|
+
actionview (= 6.1.7.8)
|
|
37
|
+
activesupport (= 6.1.7.8)
|
|
38
38
|
rack (~> 2.0, >= 2.0.9)
|
|
39
39
|
rack-test (>= 0.6.3)
|
|
40
40
|
rails-dom-testing (~> 2.0)
|
|
41
41
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
42
|
-
actiontext (6.1.7.
|
|
43
|
-
actionpack (= 6.1.7.
|
|
44
|
-
activerecord (= 6.1.7.
|
|
45
|
-
activestorage (= 6.1.7.
|
|
46
|
-
activesupport (= 6.1.7.
|
|
42
|
+
actiontext (6.1.7.8)
|
|
43
|
+
actionpack (= 6.1.7.8)
|
|
44
|
+
activerecord (= 6.1.7.8)
|
|
45
|
+
activestorage (= 6.1.7.8)
|
|
46
|
+
activesupport (= 6.1.7.8)
|
|
47
47
|
nokogiri (>= 1.8.5)
|
|
48
|
-
actionview (6.1.7.
|
|
49
|
-
activesupport (= 6.1.7.
|
|
48
|
+
actionview (6.1.7.8)
|
|
49
|
+
activesupport (= 6.1.7.8)
|
|
50
50
|
builder (~> 3.1)
|
|
51
51
|
erubi (~> 1.4)
|
|
52
52
|
rails-dom-testing (~> 2.0)
|
|
53
53
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
54
|
-
activejob (6.1.7.
|
|
55
|
-
activesupport (= 6.1.7.
|
|
54
|
+
activejob (6.1.7.8)
|
|
55
|
+
activesupport (= 6.1.7.8)
|
|
56
56
|
globalid (>= 0.3.6)
|
|
57
|
-
activemodel (6.1.7.
|
|
58
|
-
activesupport (= 6.1.7.
|
|
57
|
+
activemodel (6.1.7.8)
|
|
58
|
+
activesupport (= 6.1.7.8)
|
|
59
59
|
activemodel-serializers-xml (1.0.2)
|
|
60
60
|
activemodel (> 5.x)
|
|
61
61
|
activesupport (> 5.x)
|
|
62
62
|
builder (~> 3.1)
|
|
63
|
-
activerecord (6.1.7.
|
|
64
|
-
activemodel (= 6.1.7.
|
|
65
|
-
activesupport (= 6.1.7.
|
|
66
|
-
activeresource (6.
|
|
63
|
+
activerecord (6.1.7.8)
|
|
64
|
+
activemodel (= 6.1.7.8)
|
|
65
|
+
activesupport (= 6.1.7.8)
|
|
66
|
+
activeresource (6.1.0)
|
|
67
67
|
activemodel (>= 6.0)
|
|
68
68
|
activemodel-serializers-xml (~> 1.0)
|
|
69
69
|
activesupport (>= 6.0)
|
|
70
|
-
activestorage (6.1.7.
|
|
71
|
-
actionpack (= 6.1.7.
|
|
72
|
-
activejob (= 6.1.7.
|
|
73
|
-
activerecord (= 6.1.7.
|
|
74
|
-
activesupport (= 6.1.7.
|
|
70
|
+
activestorage (6.1.7.8)
|
|
71
|
+
actionpack (= 6.1.7.8)
|
|
72
|
+
activejob (= 6.1.7.8)
|
|
73
|
+
activerecord (= 6.1.7.8)
|
|
74
|
+
activesupport (= 6.1.7.8)
|
|
75
75
|
marcel (~> 1.0)
|
|
76
76
|
mini_mime (>= 1.1.0)
|
|
77
|
-
activesupport (6.1.7.
|
|
77
|
+
activesupport (6.1.7.8)
|
|
78
78
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
79
79
|
i18n (>= 1.6, < 2)
|
|
80
80
|
minitest (>= 5.1)
|
|
@@ -85,16 +85,16 @@ GEM
|
|
|
85
85
|
ast (2.4.2)
|
|
86
86
|
binding_of_caller (1.0.0)
|
|
87
87
|
debug_inspector (>= 0.0.1)
|
|
88
|
-
builder (3.
|
|
88
|
+
builder (3.3.0)
|
|
89
89
|
byebug (11.1.3)
|
|
90
90
|
coderay (1.1.3)
|
|
91
|
-
concurrent-ruby (1.
|
|
91
|
+
concurrent-ruby (1.3.3)
|
|
92
92
|
crack (0.4.5)
|
|
93
93
|
rexml
|
|
94
94
|
crass (1.0.6)
|
|
95
95
|
date (3.3.3)
|
|
96
96
|
debug_inspector (1.1.0)
|
|
97
|
-
erubi (1.
|
|
97
|
+
erubi (1.13.0)
|
|
98
98
|
globalid (1.1.0)
|
|
99
99
|
activesupport (>= 5.0)
|
|
100
100
|
hash_diff (1.1.1)
|
|
@@ -102,12 +102,12 @@ GEM
|
|
|
102
102
|
httparty (0.21.0)
|
|
103
103
|
mini_mime (>= 1.0.0)
|
|
104
104
|
multi_xml (>= 0.5.2)
|
|
105
|
-
i18n (1.
|
|
105
|
+
i18n (1.14.5)
|
|
106
106
|
concurrent-ruby (~> 1.0)
|
|
107
107
|
json (2.7.2)
|
|
108
108
|
jwt (2.7.0)
|
|
109
109
|
language_server-protocol (3.17.0.3)
|
|
110
|
-
loofah (2.
|
|
110
|
+
loofah (2.22.0)
|
|
111
111
|
crass (~> 1.0.2)
|
|
112
112
|
nokogiri (>= 1.12.0)
|
|
113
113
|
mail (2.8.1)
|
|
@@ -132,11 +132,11 @@ GEM
|
|
|
132
132
|
net-smtp (0.3.3)
|
|
133
133
|
net-protocol
|
|
134
134
|
nio4r (2.5.9)
|
|
135
|
-
nokogiri (1.16.
|
|
135
|
+
nokogiri (1.16.6-arm64-darwin)
|
|
136
136
|
racc (~> 1.4)
|
|
137
|
-
nokogiri (1.16.
|
|
137
|
+
nokogiri (1.16.6-x86_64-darwin)
|
|
138
138
|
racc (~> 1.4)
|
|
139
|
-
nokogiri (1.16.
|
|
139
|
+
nokogiri (1.16.6-x86_64-linux)
|
|
140
140
|
racc (~> 1.4)
|
|
141
141
|
oj (3.14.3)
|
|
142
142
|
openssl (3.1.0)
|
|
@@ -154,37 +154,39 @@ GEM
|
|
|
154
154
|
binding_of_caller (~> 1.0)
|
|
155
155
|
pry (~> 0.13)
|
|
156
156
|
public_suffix (5.0.1)
|
|
157
|
-
racc (1.
|
|
158
|
-
rack (2.2.
|
|
157
|
+
racc (1.8.0)
|
|
158
|
+
rack (2.2.9)
|
|
159
159
|
rack-test (2.1.0)
|
|
160
160
|
rack (>= 1.3)
|
|
161
|
-
rails (6.1.7.
|
|
162
|
-
actioncable (= 6.1.7.
|
|
163
|
-
actionmailbox (= 6.1.7.
|
|
164
|
-
actionmailer (= 6.1.7.
|
|
165
|
-
actionpack (= 6.1.7.
|
|
166
|
-
actiontext (= 6.1.7.
|
|
167
|
-
actionview (= 6.1.7.
|
|
168
|
-
activejob (= 6.1.7.
|
|
169
|
-
activemodel (= 6.1.7.
|
|
170
|
-
activerecord (= 6.1.7.
|
|
171
|
-
activestorage (= 6.1.7.
|
|
172
|
-
activesupport (= 6.1.7.
|
|
161
|
+
rails (6.1.7.8)
|
|
162
|
+
actioncable (= 6.1.7.8)
|
|
163
|
+
actionmailbox (= 6.1.7.8)
|
|
164
|
+
actionmailer (= 6.1.7.8)
|
|
165
|
+
actionpack (= 6.1.7.8)
|
|
166
|
+
actiontext (= 6.1.7.8)
|
|
167
|
+
actionview (= 6.1.7.8)
|
|
168
|
+
activejob (= 6.1.7.8)
|
|
169
|
+
activemodel (= 6.1.7.8)
|
|
170
|
+
activerecord (= 6.1.7.8)
|
|
171
|
+
activestorage (= 6.1.7.8)
|
|
172
|
+
activesupport (= 6.1.7.8)
|
|
173
173
|
bundler (>= 1.15.0)
|
|
174
|
-
railties (= 6.1.7.
|
|
174
|
+
railties (= 6.1.7.8)
|
|
175
175
|
sprockets-rails (>= 2.0.0)
|
|
176
176
|
rails-controller-testing (1.0.5)
|
|
177
177
|
actionpack (>= 5.0.1.rc1)
|
|
178
178
|
actionview (>= 5.0.1.rc1)
|
|
179
179
|
activesupport (>= 5.0.1.rc1)
|
|
180
|
-
rails-dom-testing (2.0
|
|
181
|
-
activesupport (>=
|
|
180
|
+
rails-dom-testing (2.2.0)
|
|
181
|
+
activesupport (>= 5.0.0)
|
|
182
|
+
minitest
|
|
182
183
|
nokogiri (>= 1.6)
|
|
183
|
-
rails-html-sanitizer (1.
|
|
184
|
-
loofah (~> 2.
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
184
|
+
rails-html-sanitizer (1.6.0)
|
|
185
|
+
loofah (~> 2.21)
|
|
186
|
+
nokogiri (~> 1.14)
|
|
187
|
+
railties (6.1.7.8)
|
|
188
|
+
actionpack (= 6.1.7.8)
|
|
189
|
+
activesupport (= 6.1.7.8)
|
|
188
190
|
method_source
|
|
189
191
|
rake (>= 12.2)
|
|
190
192
|
thor (~> 1.0)
|
|
@@ -194,7 +196,8 @@ GEM
|
|
|
194
196
|
redirect_safely (1.0.0)
|
|
195
197
|
activemodel
|
|
196
198
|
regexp_parser (2.9.0)
|
|
197
|
-
rexml (3.2
|
|
199
|
+
rexml (3.3.2)
|
|
200
|
+
strscan
|
|
198
201
|
rubocop (1.62.1)
|
|
199
202
|
json (~> 2.3)
|
|
200
203
|
language_server-protocol (>= 3.17.0)
|
|
@@ -239,6 +242,7 @@ GEM
|
|
|
239
242
|
sqlite3 (1.7.3-arm64-darwin)
|
|
240
243
|
sqlite3 (1.7.3-x86_64-darwin)
|
|
241
244
|
sqlite3 (1.7.3-x86_64-linux)
|
|
245
|
+
strscan (3.1.0)
|
|
242
246
|
syntax_tree (6.1.1)
|
|
243
247
|
prettier_print (>= 1.2.0)
|
|
244
248
|
thor (1.2.2)
|
|
@@ -253,7 +257,7 @@ GEM
|
|
|
253
257
|
websocket-driver (0.7.5)
|
|
254
258
|
websocket-extensions (>= 0.1.0)
|
|
255
259
|
websocket-extensions (0.1.5)
|
|
256
|
-
zeitwerk (2.6.
|
|
260
|
+
zeitwerk (2.6.16)
|
|
257
261
|
|
|
258
262
|
PLATFORMS
|
|
259
263
|
arm64-darwin-21
|
data/README.md
CHANGED
|
@@ -148,6 +148,10 @@ authenticated API access.
|
|
|
148
148
|
|
|
149
149
|
1. Enable [Shopify managed installation](https://shopify.dev/docs/apps/auth/installation#shopify-managed-installation)
|
|
150
150
|
by configuring your scopes [through the Shopify CLI](https://shopify.dev/docs/apps/tools/cli/configuration).
|
|
151
|
+
> [!NOTE]
|
|
152
|
+
> Ensure you don't have `use_legacy_install_flow = true` in your `shopify.app.toml` configuration file. If `use_legacy_install_flow` is true, Shopify will not manage the installation process for your app.
|
|
153
|
+
> You should remove the `use_legacy_install_flow` line from your `shopify.app.toml` configuration file or set it to `false`.
|
|
154
|
+
|
|
151
155
|
2. Enable the new auth strategy in your app's ShopifyApp configuration file.
|
|
152
156
|
|
|
153
157
|
```ruby
|
|
@@ -165,7 +169,10 @@ ShopifyApp.configure do |config|
|
|
|
165
169
|
end
|
|
166
170
|
|
|
167
171
|
```
|
|
168
|
-
3.
|
|
172
|
+
3. Handle special callback logic. If your app has overridden the OAuth CallbackController to run special tasks post authorization,
|
|
173
|
+
you'll need to create and configure a custom PostAuthenticateTasks class to run these tasks after the token exchange. The original
|
|
174
|
+
OAuth CallbackController will not be triggered anymore. See [Post Authenticate Tasks documentation](/docs/shopify_app/authentication.md#post-authenticate-tasks) for more information.
|
|
175
|
+
4. Enjoy a smoother and faster app installation process.
|
|
169
176
|
|
|
170
177
|
### API Versioning
|
|
171
178
|
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
//= require ./app_bridge_redirect.js
|
|
2
|
-
|
|
3
1
|
(function () {
|
|
4
2
|
function redirect() {
|
|
5
3
|
var redirectTargetElement = document.getElementById("redirection-target");
|
|
@@ -9,14 +7,10 @@
|
|
|
9
7
|
}
|
|
10
8
|
|
|
11
9
|
var targetInfo = JSON.parse(redirectTargetElement.dataset.target);
|
|
10
|
+
var normalizedLink = document.createElement('a');
|
|
11
|
+
normalizedLink.href = targetInfo.url;
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (appBridgeUtils.isShopifyEmbedded()) {
|
|
16
|
-
window.appBridgeRedirect(targetInfo.url);
|
|
17
|
-
} else {
|
|
18
|
-
window.top.location.href = targetInfo.url;
|
|
19
|
-
}
|
|
13
|
+
open(normalizedLink.href, '_top');
|
|
20
14
|
}
|
|
21
15
|
|
|
22
16
|
document.addEventListener("DOMContentLoaded", redirect);
|
|
@@ -52,7 +52,8 @@ module ShopifyApp
|
|
|
52
52
|
|
|
53
53
|
def start_install
|
|
54
54
|
shop_name = sanitized_shop_name.split(".").first
|
|
55
|
-
|
|
55
|
+
unified_admin_path = ShopifyApp::Utils.unified_admin_path(shop_name)
|
|
56
|
+
install_path = "#{unified_admin_path}/oauth/install?client_id=#{ShopifyApp.configuration.api_key}"
|
|
56
57
|
redirect_to(install_path, allow_other_host: true)
|
|
57
58
|
end
|
|
58
59
|
|
|
@@ -5,9 +5,13 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<base target="_top">
|
|
7
7
|
<title>Redirecting…</title>
|
|
8
|
+
|
|
9
|
+
<meta name="shopify-api-key" content="<%= ShopifyApp.configuration.api_key %>">
|
|
10
|
+
<%= javascript_include_tag "https://cdn.shopify.com/shopifycloud/app-bridge.js" %>
|
|
11
|
+
|
|
8
12
|
<%= javascript_include_tag('shopify_app/redirect', crossorigin: 'anonymous', integrity: true) %>
|
|
9
13
|
</head>
|
|
10
|
-
<body
|
|
14
|
+
<body>
|
|
11
15
|
<%=
|
|
12
16
|
content_tag(:div, nil,
|
|
13
17
|
id: 'redirection-target',
|
data/config/locales/cs.yml
CHANGED
|
@@ -3,21 +3,3 @@ cs:
|
|
|
3
3
|
logged_out: Odhlášení proběhlo úspěšně
|
|
4
4
|
could_not_log_in: Nelze se přihlásit do obchodu Shopify
|
|
5
5
|
invalid_shop_url: Neplatná doména obchodu
|
|
6
|
-
enable_cookies_heading: Zapnout soubory cookie z aplikace %{app}
|
|
7
|
-
enable_cookies_body: Pokud chcete v Shopify používat aplikaci %{app}, musíte soubory
|
|
8
|
-
cookie v tomto prohlížeči povolit ručně.
|
|
9
|
-
enable_cookies_footer: Soubory cookie umožňují, aby vás aplikace ověřila pomocí
|
|
10
|
-
dočasného uchování preferencí a osobních údajů. Jejich platnost vyprší po 30 dnech.
|
|
11
|
-
enable_cookies_action: Povolit soubory cookie
|
|
12
|
-
top_level_interaction_heading: Váš prohlížeč potřebuje ověřit aplikaci %{app}
|
|
13
|
-
top_level_interaction_body: Váš prohlížeč vyžaduje, aby si od vás aplikace, jako
|
|
14
|
-
je %{app}, nejdřív vyžádaly přístup k souborům cookie, než je pro vás Shopify
|
|
15
|
-
otevře.
|
|
16
|
-
top_level_interaction_action: Pokračovat
|
|
17
|
-
request_storage_access_heading: Aplikace %{app} potřebuje získat přístup k souborům
|
|
18
|
-
cookie
|
|
19
|
-
request_storage_access_body: Tato aplikace vám umožní ověření prostřednictvím dočasného
|
|
20
|
-
uchování vašich osobních údajů. Pokud chcete používat tuto aplikaci, klikněte
|
|
21
|
-
na tlačítko Pokračovat a povolte soubory cookie.
|
|
22
|
-
request_storage_access_footer: Platnost souborů cookie vyprší po 30 dnech.
|
|
23
|
-
request_storage_access_action: Pokračovat
|
data/config/locales/da.yml
CHANGED
|
@@ -3,18 +3,3 @@ da:
|
|
|
3
3
|
logged_out: Logget ud
|
|
4
4
|
could_not_log_in: Kunne ikke logge ind på Shopify-butik
|
|
5
5
|
invalid_shop_url: Ugyldig butiksdomæne
|
|
6
|
-
enable_cookies_heading: Aktivér cookies fra %{app}
|
|
7
|
-
enable_cookies_body: Du skal manuelt aktivere cookies i denne browser for at kunne
|
|
8
|
-
bruge %{app} i Shopify.
|
|
9
|
-
enable_cookies_footer: Cookies lader appen godkende dig ved at gemme dine præferencer
|
|
10
|
-
og personlige oplysninger midlertidigt. De udløber efter 30 dage.
|
|
11
|
-
enable_cookies_action: Aktivér cookies
|
|
12
|
-
top_level_interaction_heading: Din browser skal godkende %{app}
|
|
13
|
-
top_level_interaction_body: Din browser kræver, at apps som f.eks. %{app} spørger
|
|
14
|
-
dig om adgang til cookies, inden Shopify kan åbne den for dig.
|
|
15
|
-
top_level_interaction_action: Fortsæt
|
|
16
|
-
request_storage_access_heading: "%{app} skal have adgang til cookies"
|
|
17
|
-
request_storage_access_body: Det lader appen godkende dig ved at gemme dine personlige
|
|
18
|
-
oplysninger midlertidigt. Klik på forsæt, og tillad cookies for at bruge appen.
|
|
19
|
-
request_storage_access_footer: Cookies udløber efter 30 dage.
|
|
20
|
-
request_storage_access_action: Fortsæt
|
data/config/locales/de.yml
CHANGED
|
@@ -3,20 +3,3 @@ de:
|
|
|
3
3
|
logged_out: Erfolgreich ausgelogt
|
|
4
4
|
could_not_log_in: Shopify Store Login fehlgeschlagen
|
|
5
5
|
invalid_shop_url: Ungültige Shop-Domain
|
|
6
|
-
enable_cookies_heading: Cookies von %{app} aktivieren
|
|
7
|
-
enable_cookies_body: Du musst Cookies in diesem Browser manuell aktivieren, um %{app}
|
|
8
|
-
in Shopify verwenden zu können.
|
|
9
|
-
enable_cookies_footer: Mithilfe von Cookies kann die App dich authentifizieren,
|
|
10
|
-
indem deine Einstellungen und personenbezogenen Daten vorübergehend gespeichert
|
|
11
|
-
werden. Sie laufen nach 30 Tagen ab.
|
|
12
|
-
enable_cookies_action: Cookies aktivieren
|
|
13
|
-
top_level_interaction_heading: Dein Browser muss %{app} authentifizieren
|
|
14
|
-
top_level_interaction_body: Dein Browser verlangt, dass Apps wie %{app} dich um
|
|
15
|
-
Zugriff auf Cookies bitten, bevor Shopify sie für dich öffnen kann.
|
|
16
|
-
top_level_interaction_action: Weiter
|
|
17
|
-
request_storage_access_heading: "%{app} braucht Zugriff auf Cookies"
|
|
18
|
-
request_storage_access_body: Damit kann die App dich authentifizieren, indem deine
|
|
19
|
-
Einstellungen und personenbezogenen Daten vorübergehend gespeichert werden. Klicke
|
|
20
|
-
auf "Weiter" und erlaube Cookies, um die App zu verwenden.
|
|
21
|
-
request_storage_access_footer: Cookies laufen nach 30 Tagen ab.
|
|
22
|
-
request_storage_access_action: Weiter
|
data/config/locales/en.yml
CHANGED
|
@@ -2,14 +2,3 @@ en:
|
|
|
2
2
|
logged_out: 'Successfully logged out'
|
|
3
3
|
could_not_log_in: 'Could not log in to Shopify store'
|
|
4
4
|
invalid_shop_url: 'Invalid shop domain'
|
|
5
|
-
enable_cookies_heading: "Enable cookies from %{app}"
|
|
6
|
-
enable_cookies_body: "You must manually enable cookies in this browser in order to use %{app} within Shopify."
|
|
7
|
-
enable_cookies_footer: 'Cookies let the app authenticate you by temporarily storing your preferences and personal information. They expire after 30 days.'
|
|
8
|
-
enable_cookies_action: 'Enable cookies'
|
|
9
|
-
top_level_interaction_heading: "Your browser needs to authenticate %{app}"
|
|
10
|
-
top_level_interaction_body: "Your browser requires apps like %{app} to ask you for access to cookies before Shopify can open it for you."
|
|
11
|
-
top_level_interaction_action: 'Continue'
|
|
12
|
-
request_storage_access_heading: "%{app} needs access to cookies"
|
|
13
|
-
request_storage_access_body: "This lets the app authenticate you by temporarily storing your personal information. Click continue and allow cookies to use the app."
|
|
14
|
-
request_storage_access_footer: 'Cookies expire after 30 days.'
|
|
15
|
-
request_storage_access_action: 'Continue'
|
data/config/locales/es.yml
CHANGED
|
@@ -3,20 +3,3 @@ es:
|
|
|
3
3
|
logged_out: Cerrar sesión
|
|
4
4
|
could_not_log_in: No se pudo iniciar sesión en tu tienda Shopify
|
|
5
5
|
invalid_shop_url: Dominio de tienda inválido
|
|
6
|
-
enable_cookies_heading: Habilitar cookies de %{app}
|
|
7
|
-
enable_cookies_body: Debes habilitar manualmente las cookies en este navegador para
|
|
8
|
-
usar %{app} en Shopify.
|
|
9
|
-
enable_cookies_footer: Las cookies permiten que la aplicación te autentique almacenando
|
|
10
|
-
temporalmente tus preferencias y datos personales. Las cookies expiran al cabo
|
|
11
|
-
de 30 días.
|
|
12
|
-
enable_cookies_action: Habilitar cookies
|
|
13
|
-
top_level_interaction_heading: Tu navegador necesita autenticar %{app}
|
|
14
|
-
top_level_interaction_body: Tu navegador requiere aplicaciones como %{app} para
|
|
15
|
-
solicitarte acceso a cookies antes de que Shopify pueda abrirlo por ti.
|
|
16
|
-
top_level_interaction_action: Continuar
|
|
17
|
-
request_storage_access_heading: "%{app} necesita acceso a las cookies"
|
|
18
|
-
request_storage_access_body: Esto permite que la aplicación te autentique almacenando
|
|
19
|
-
temporalmente tus datos personales. Haz clic en continuar y permite que las cookies
|
|
20
|
-
utilicen la aplicación.
|
|
21
|
-
request_storage_access_footer: Las cookies expiran a los 30 días.
|
|
22
|
-
request_storage_access_action: Continuar
|
data/config/locales/fi.yml
CHANGED
|
@@ -3,18 +3,3 @@ fi:
|
|
|
3
3
|
logged_out: Olet kirjautunut ulos
|
|
4
4
|
could_not_log_in: Kirjautuminen Shopify-kauppaan ei onnistunut
|
|
5
5
|
invalid_shop_url: Virheellinen kaupan verkkotunnus
|
|
6
|
-
enable_cookies_heading: Ota käyttöön sovelluksen %{app} evästeet
|
|
7
|
-
enable_cookies_body: Sinun on otettava evästeet käyttöön manuaalisesti tässä selaimessa,
|
|
8
|
-
jotta voit käyttää sovellusta %{app} Shopifyssa.
|
|
9
|
-
enable_cookies_footer: Evästeiden avulla sovellus voi todentaa sinut tallentamalla
|
|
10
|
-
asetuksesi ja henkilötietosi tilapäisesti. Ne vanhenevat 30 päivän kuluttua.
|
|
11
|
-
enable_cookies_action: Ota evästeet käyttöön
|
|
12
|
-
top_level_interaction_heading: Selaimesi täytyy todentaa %{app}
|
|
13
|
-
top_level_interaction_body: Selaimesi vaatii sovelluksia, kuten %{app}, pyytämään
|
|
14
|
-
sinulta luvan evästeiden käyttöön, ennen kuin Shopify voi avata sovelluksen.
|
|
15
|
-
top_level_interaction_action: Jatka
|
|
16
|
-
request_storage_access_heading: "%{app} edellyttää evästeiden käyttöä"
|
|
17
|
-
request_storage_access_body: Näin sovellus voi todentaa sinut tallentamalla henkilötietosi
|
|
18
|
-
tilapäisesti. Klikkaa Jatka ja salli evästeet sovelluksen käyttämiseksi.
|
|
19
|
-
request_storage_access_footer: Evästeet vanhenevat 30 päivän kuluttua.
|
|
20
|
-
request_storage_access_action: Jatka
|
data/config/locales/fr.yml
CHANGED
|
@@ -3,21 +3,3 @@ fr:
|
|
|
3
3
|
logged_out: Vous êtes déconnecté(e)
|
|
4
4
|
could_not_log_in: Impossible de se connecter à la boutique Shopify
|
|
5
5
|
invalid_shop_url: Url invalide
|
|
6
|
-
enable_cookies_heading: Activer les cookies de %{app}
|
|
7
|
-
enable_cookies_body: Vous devez manuellement activer les cookies dans ce navigateur
|
|
8
|
-
pour utiliser %{app} dans Shopify.
|
|
9
|
-
enable_cookies_footer: Les cookies permettent à l'application de vous authentifier
|
|
10
|
-
en stockant temporairement vos préférences et informations personnelles. Celles-ci
|
|
11
|
-
expirent après 30 jours.
|
|
12
|
-
enable_cookies_action: Activer les cookies
|
|
13
|
-
top_level_interaction_heading: Votre navigateur doit s'authentifier %{app}
|
|
14
|
-
top_level_interaction_body: Votre navigateur nécessite des applications telles que
|
|
15
|
-
%{app} pour vous demander l'accès aux cookies avant que Shopify ne puisse l'ouvrir
|
|
16
|
-
pour vous.
|
|
17
|
-
top_level_interaction_action: Continuer
|
|
18
|
-
request_storage_access_heading: "%{app} a besoin d'accéder aux cookies"
|
|
19
|
-
request_storage_access_body: Cela permet à l'application de vous authentifier en
|
|
20
|
-
stockant temporairement vos informations personnelles. Cliquez pour continuer
|
|
21
|
-
et autorisez les cookies à utiliser l'application.
|
|
22
|
-
request_storage_access_footer: Les cookies expirent après 30 jours.
|
|
23
|
-
request_storage_access_action: Continuer
|
data/config/locales/it.yml
CHANGED
|
@@ -3,19 +3,3 @@ it:
|
|
|
3
3
|
logged_out: Disconnessione effettuata correttamente
|
|
4
4
|
could_not_log_in: Impossibile accedere al negozio Shopify
|
|
5
5
|
invalid_shop_url: Dominio negozio non valido
|
|
6
|
-
enable_cookies_heading: Abilita i cookie di %{app}
|
|
7
|
-
enable_cookies_body: Devi abilitare manualmente i cookie in questo browser per poter
|
|
8
|
-
utilizzare %{app} da Shopify.
|
|
9
|
-
enable_cookies_footer: I cookie consentono all'app di autenticarti memorizzando
|
|
10
|
-
temporaneamente le tue preferenze e informazioni personali. Scadono dopo 30 giorni.
|
|
11
|
-
enable_cookies_action: Abilita i cookie
|
|
12
|
-
top_level_interaction_heading: Il tuo browser deve autenticare %{app}
|
|
13
|
-
top_level_interaction_body: Il tuo browser richiede che app come %{app} ti chiedano
|
|
14
|
-
l'accesso ai cookie prima dell'apertura automatica da parte di Shopify.
|
|
15
|
-
top_level_interaction_action: Continua
|
|
16
|
-
request_storage_access_heading: "%{app} deve accedere ai cookie"
|
|
17
|
-
request_storage_access_body: L'app potrà così autenticarti memorizzando temporaneamente
|
|
18
|
-
le tue informazioni personali. Clicca su Continua e consenti ai cookie di utilizzare
|
|
19
|
-
l'app.
|
|
20
|
-
request_storage_access_footer: I cookie scadono dopo 30 giorni.
|
|
21
|
-
request_storage_access_action: Continua
|
data/config/locales/ja.yml
CHANGED
|
@@ -3,15 +3,3 @@ ja:
|
|
|
3
3
|
logged_out: ログアウトに成功しました
|
|
4
4
|
could_not_log_in: Shopifyストアにログインできませんでした
|
|
5
5
|
invalid_shop_url: ショップのドメインが無効です
|
|
6
|
-
enable_cookies_heading: "%{app}からのCookieを有効にする"
|
|
7
|
-
enable_cookies_body: Shopifyで%{app}を使用できるようにするためには、このブラウザのCookieを手動で有効にする必要があります。
|
|
8
|
-
enable_cookies_footer: Cookieを使用すると、各種設定や個人情報を一時的に保存することで、アプリ認証を受けることができます。30日後に有効期限が切れます。
|
|
9
|
-
enable_cookies_action: Cookieを有効にする
|
|
10
|
-
top_level_interaction_heading: お使いのブラウザを更新する必要があります%{app}
|
|
11
|
-
top_level_interaction_body: Shopifyがアプリを開けるように、ブラウザはCookieにアクセスするための%{app}のようなアプリが必要です。
|
|
12
|
-
top_level_interaction_action: 続ける
|
|
13
|
-
request_storage_access_heading: "%{app}はCookieへのアクセス許可が必要です"
|
|
14
|
-
request_storage_access_body: Cookieを使用すると、個人情報を一時的に保存することで、アプリ認証を受けることができます。[続ける]
|
|
15
|
-
をクリックすると、アプリはCookieを利用します。
|
|
16
|
-
request_storage_access_footer: Cookieは30日後に有効期限が切れます。
|
|
17
|
-
request_storage_access_action: 続ける
|
data/config/locales/ko.yml
CHANGED
|
@@ -3,17 +3,3 @@ ko:
|
|
|
3
3
|
logged_out: 성공적으로 로그아웃 되었습니다.
|
|
4
4
|
could_not_log_in: Shopify 스토어에 로그인할 수 없습니다.
|
|
5
5
|
invalid_shop_url: 유효하지 않은 상점 도메인
|
|
6
|
-
enable_cookies_heading: "%{app}에서 쿠키를 사용 가능"
|
|
7
|
-
enable_cookies_body: Shopify 내에서 %{app} 을 사용하기 위해 이 브라우저에서 쿠키를 수동으로 사용할 수 있습니다.
|
|
8
|
-
enable_cookies_footer: 쿠키를 사용하면 개인의 선호나 정보를 임시로 저장하여 앱에서 사용자를 인증할 수 있습니다. 쿠키는 30일
|
|
9
|
-
후에 만료됩니다.
|
|
10
|
-
enable_cookies_action: 쿠리 사용 가능
|
|
11
|
-
top_level_interaction_heading: 브라우저에서 %{app} 을 인증해야 합니다.
|
|
12
|
-
top_level_interaction_body: Shopify를 열기 전 쿠키에 엑세스하려면 %{app} 과 같은 앱 들이 브라우저에 설치되어야
|
|
13
|
-
합니다.
|
|
14
|
-
top_level_interaction_action: 계속
|
|
15
|
-
request_storage_access_heading: "%{app}에서 쿠키에 접근해야 합니다."
|
|
16
|
-
request_storage_access_body: 이를 통해 개인 정보를 임시로 저장하여 앱에서 사용자를 인증할 수 있습니다. 계속 클릭하여
|
|
17
|
-
쿠키로 앱을 사용하세요.
|
|
18
|
-
request_storage_access_footer: 쿠키는 30일 후에 만료됩니다.
|
|
19
|
-
request_storage_access_action: 계속
|
data/config/locales/nb.yml
CHANGED
|
@@ -3,19 +3,3 @@ nb:
|
|
|
3
3
|
logged_out: Logget ut
|
|
4
4
|
could_not_log_in: Kunne ikke logge på Shopify-butikken
|
|
5
5
|
invalid_shop_url: Ugyldig butikkdomene
|
|
6
|
-
enable_cookies_heading: Aktiver informasjonskapsler fra %{app}
|
|
7
|
-
enable_cookies_body: Du kan manuelt aktivere informasjonskapsler i denne nettleseren
|
|
8
|
-
for å kunne bruke %{app} i Shopify.
|
|
9
|
-
enable_cookies_footer: Informasjonskapsler lar appen autentisere deg ved å midlertidig
|
|
10
|
-
lagre innstillingene og personopplysningene dine. De går ut etter 30 dager.
|
|
11
|
-
enable_cookies_action: Aktiver informasjonskapsler
|
|
12
|
-
top_level_interaction_heading: Nettleseren din må autentisere %{app}
|
|
13
|
-
top_level_interaction_body: Nettleseren din krever apper som %{app} for å spørre
|
|
14
|
-
deg om tilgang til informasjonskapsler før Shopify kan åpne den for deg.
|
|
15
|
-
top_level_interaction_action: Fortsett
|
|
16
|
-
request_storage_access_heading: "%{app} må ha tilgang til informasjonskapsler"
|
|
17
|
-
request_storage_access_body: Informasjonskapsler lar appen autentisere deg ved å
|
|
18
|
-
midlertidig lagre personopplysningene dine. Klikk på Fortsett og gi informasjonskapsler
|
|
19
|
-
tillatelse til å bruke appen.
|
|
20
|
-
request_storage_access_footer: Informasjonskapslene går ut etter 30 dager.
|
|
21
|
-
request_storage_access_action: Fortsett
|
data/config/locales/nl.yml
CHANGED
|
@@ -3,19 +3,3 @@ nl:
|
|
|
3
3
|
logged_out: Je bent afgemeld
|
|
4
4
|
could_not_log_in: Kon niet inloggen bij Shopify-winkel
|
|
5
5
|
invalid_shop_url: Ongeldig winkeldomein
|
|
6
|
-
enable_cookies_heading: Schakel cookies in van %{app}
|
|
7
|
-
enable_cookies_body: Je moet cookies in deze browser handmatig inschakelen om %{app}
|
|
8
|
-
binnen Shopify te gebruiken.
|
|
9
|
-
enable_cookies_footer: Met cookies kan de app je verifiëren door je voorkeuren en
|
|
10
|
-
persoonlijke informatie tijdelijk op te slaan. Ze vervallen na 30 dagen.
|
|
11
|
-
enable_cookies_action: Schakel cookies in
|
|
12
|
-
top_level_interaction_heading: Je browser moet %{app} verifiëren
|
|
13
|
-
top_level_interaction_body: Je browser heeft apps nodig zoals %{app} om je toegang
|
|
14
|
-
te vragen tot cookies voordat Shopify het voor je kan openen.
|
|
15
|
-
top_level_interaction_action: Doorgaan
|
|
16
|
-
request_storage_access_heading: "%{app} heeft toegang tot cookies nodig"
|
|
17
|
-
request_storage_access_body: Hiermee kan de app je verifiëren door je persoonlijke
|
|
18
|
-
gegevens tijdelijk op te slaan. Klik op Doorgaan en sta cookies toe om de app
|
|
19
|
-
te gebruiken.
|
|
20
|
-
request_storage_access_footer: Cookies verlopen na 30 dagen.
|
|
21
|
-
request_storage_access_action: Doorgaan
|