Skip to content

Add support to exchange online and offline tokens - #15

Open
matnun-br wants to merge 15 commits into
mainfrom
feat/add-support-to-non-expiring-token
Open

matnun-br wants to merge 15 commits into
mainfrom
feat/add-support-to-non-expiring-token

Conversation

@matnun-br

Copy link
Copy Markdown
Contributor
  • Add support to migrate non expiring offline token to expirng offline token
  • Add support to refresh expiring offline token
  • Add support to exchange id token for offline and online token
  • Add support to exchange code token for offline and online token
  • Add HMAC and Shop domain validation
  • Add method to build authorization URL
  • ShopifyClientOptions.AccessToken can now be set. This is required for token refresh

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@matnun-br matnun-br assigned clement911 and unassigned Copilot Oct 25, 2026
@matnun-br
matnun-br marked this pull request as ready for review October 25, 2026 23:27

@clement911 clement911 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also please confirm these:

Smaller points

  • Granted scopes aren't checked. The docs say to confirm that the response's scope contains every required scope, because merchants can change scopes during authorization. A write_x scope also counts as read_x. A helper such as HasScopes(token.scope, required) or a README note would help.

  • Wrong code type goes unnoticed. If a per-user (online) code is passed to ExchangeCodeForOfflineAccessTokenAsync, it deserializes as an offline token with no error. The docs warn that writing an online token into the offline record stops background refresh. You could throw when the response contains associated_user.

Comment thread ShopifyNet/OAuth/ShopifyOAuthClient.cs Resolved
Comment thread ShopifyNet/OAuth/ShopifyOAuthClient.cs Resolved
Comment thread ShopifyNet/OAuth/ShopifyOAuthClient.cs Resolved
Comment thread ShopifyNet/OAuth/ShopifyOAuthClient.cs Resolved
@clement911 clement911 assigned matnun-br and unassigned clement911 Oct 26, 2026
@matnun-br matnun-br assigned clement911 and unassigned matnun-br Oct 28, 2026
@matnun-br

Copy link
Copy Markdown
Contributor Author

@clement911 comments have all been addressed. This is ready for review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants