Michael Bishop

Results 13 comments of Michael Bishop

@RavenHursT Whatever your 'persist Session / token in your database' logic is, it should live in storeCallback, yep!

@redochka Nope! You'll need to set up independent routes for handling the GDPR webhook requests, as well as run the validation for them. The process for doing so isn't in...

For what it's worth: this happens with express.json as well, not just koa-bodyparser. Workaround is really just to make sure that the body-parsing middleware does not run for the webhook...

validateAuthCallback calls SESSION_STORAGE.storeCallback (or rather, SESSION_STORAGE.storeSession, which then calls storeCallback) under the hood -- so assuming your CustomSessionStorage is implemented properly, it's already being done! See here: https://github.com/Shopify/shopify-node-api/blob/2527af569d9e5be95848081c086f5cd19cf632d7/src/auth/oauth/oauth.ts#L200

@charle-connoringold Yes, but no, but yes, but kind of? That's the INTENDED functionality, but it can get a little wacky if you're using offline access token sessions, due to some...

Adding onto this issue: something else missing from the documentation is guidance on verifying that the mandatory GDPR webhooks come from Shopify. The official docs include examples in Ruby, PHP,...

I believe the following should be a minimally-viable example? ``` api.use(express.json()); // Clashes with Shopify.Webhooks.Registry.process, so this MUST be AFTER default /webhooks route api.post('/customers/data', async(req, res) => { const generatedHash...

You can test the customers/data endpoint quite easily! Assuming your app is installed on a development store you have access to, navigate to Customers > click any Customer > check...

HOWEVER it's worth calling attention (yet again) to the fact that body-parser / express.json breaks the standard Shopify.Webhooks.Registry.process function, so if you're using either to parse the payload from the...

@Arias-xss Just remove the TypeScript casting and pass in "2022-01" as a string ``` Shopify.Context.initialize({ // ... API_VERSION: "2022-01", }); ```