I have already updated the frameworks used by Remix and React Router, but I noticed that shopify-app-express does not yet officially support expiring offline access tokens. Many users have raised this issue on GitHub, and some have even submitted pull requests.
It has been over two months since the earliest issue was raised, but there seems to have been no progress.
Although it is possible to use a forked version in the meantime, I would like to know when official support will be added to shopify-app-express to ensure smoother future upgrades.
Should I migrate to React Router? However, this application has been running for over three years and contains a large number of pages and non-React components, making migration seem neither easy nor practical. I hope the official team can provide support as soon as possible.
I checked into this, and you’re right that @shopify/shopify-app-express doesn’t appear to currently provide complete built-in support for expiring offline access tokens.
One important detail is that adding expiring: true to the callback alone isn’t a complete migration. The app also needs to store the refresh token and expiry metadata, refresh access tokens when needed, and exchange existing non-expiring tokens.
That said, I’ll flag this internally for you for sure, since I realize it’s not ideal. I’ll loop back here if I can confirm the intended fix or release path.
+1 to add the support of expiring offline tokens to @shopify/shopify-app-express. We have an app which still uses express and this is necessary for us to migrate to expiring tokens.
Thank you for your response. We hope to have the version updated a few months before the deadline, so that we still have time for testing and deployment. Otherwise, we may have to apply our own patches or extract the relevant logic ourselves, which could potentially impact future framework upgrades.
We are looking into enabling this in a near future release. I can’t say exactly when we’ll have this rolled out, but I’ll update this thread once we have more info/when the update is live.