You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,8 @@
2
2
3
3
Note: For changes to the API, see https://shopify.dev/changelog?filter=api
4
4
## Unreleased
5
+
-[#1443](https://github.com/Shopify/shopify-api-ruby/pull/1443) Add `ShopifyAPI::Utils::ShopValidator` (module) with `sanitize_shop_domain` and `sanitize!`.
6
+
-[#1443](https://github.com/Shopify/shopify-api-ruby/pull/1443)`ShopifyAPI::Auth::TokenExchange.exchange_token` always uses the session token's `dest` claim, instead of the `shop` parameter, that is now deprecated. It will show a deprecation warning and the argument will be removed in the next major version.
5
7
6
8
## 16.2.0 (2026-04-13)
7
9
-[#1442](https://github.com/Shopify/shopify-api-ruby/pull/1442) Add support for 2026-04 API version
|`shop`|`String`| Yes | - | A Shopify domain name in the form `{exampleshop}.myshopify.com`. |
76
-
|`session_token`|`String`| Yes| - | The session token (Shopify Id Token) provided by App Bridge in either the request 'Authorization' header or URL param when the app is loaded in Admin. |
75
+
|`session_token`|`String`| Yes| - | The session token (Shopify Id Token) provided by App Bridge in either the request 'Authorization' header or URL param when the app is loaded in Admin. Its `dest` claim determines which shop receives the token exchange request. |
77
76
|`requested_token_type`|`TokenExchange::RequestedTokenType`| Yes | - | The type of token requested. Online: `TokenExchange::RequestedTokenType::ONLINE_ACCESS_TOKEN` or offline: `TokenExchange::RequestedTokenType::OFFLINE_ACCESS_TOKEN`. |
77
+
|`shop`|`String`| No |`nil`|**Deprecated**, will be removed in v17.0.0. Ignored for the request host; the shop always comes from the session token `dest` claim. If passed, logs a deprecation warning. |
78
78
79
79
#### Output
80
80
This method returns the new `ShopifyAPI::Auth::Session` object from the token exchange,
@@ -83,14 +83,13 @@ your app should store this `Session` object to be used later [when making authen
83
83
#### Example
84
84
```ruby
85
85
86
-
# `shop` is the shop domain name - "this-is-my-example-shop.myshopify.com"
87
86
# `session_token` is the session token provided by App Bridge either in:
88
87
# - the request 'Authorization' header as `Bearer this-is-the-session_token`
89
88
# - or as a URL param `id_token=this-is-the-session_token`
89
+
# The shop is taken from the token's `dest` claim (see session token documentation).
0 commit comments