Node + React template doesn't pass the "Shopify badge" by default

I’m using the default template for Node/React:

And after submitting the application it doesn’t pass for:

  • Use App Bridge 2.0 or higher
  • Use session token authentication

I know about the Remix template, but I’m more fond of the Node/React and don’t want to switch. The template should provide this by default.

Could someone help me understand where is the problem for these templates? Can provide my specific app as an example if it helps.

Hi Tomas,

It sounds like you’ll need to update your app for the requirements that you’re not meeting. Are you already including the app bridge script tag in the <head> of your app, as is described here?

For updating for session token auth, this guide will be helpful: Set up session tokens

The templates we provide are basic examples/ starting points for all app devs (as many don’t build for the Shopify App Store), so they will not pass all the Built for Shopify criteria out of the box.

I understand, but for example with “App Bridge 2.0” I have the script tag in the head :person_shrugging:

<meta name="shopify-api-key" content="%VITE_SHOPIFY_API_KEY%" />
<script src="https://cdn.shopify.com/shopifycloud/app-bridge.js"></script>

Same as here: shopify-frontend-template-react/index.html at main · Shopify/shopify-frontend-template-react · GitHub

Regarding the session storage, I have an implementation using native fetch: How to Fetch POST or GET API with Shopify Auth After Hooks Folder Removal · Issue #299 · Shopify/shopify-frontend-template-react · GitHub which add Authorization headers by default. Even in the database I have a table created shopify_sessions :person_shrugging:

Screenshot 2025-01-02 at 17.27.58

And all my endpoint are protected with session authorizer.

app.use("/api/*", shopify.validateAuthenticatedSession());

The guide referring to setting up session tokens seems way out of date at this point. Multiple resources that are pointed out in that document are deprecated at this point.

The problem auto-resolved after ~1 week from Shopify’s side - no code was changed - now both points pass requirements.

I agree that it’s different from the Remix template, but all works fine out of the box with session tokens and app bridge.

It’s funny you say that, I read another user who seems to have it fixed out of nowhere after about a week of doing nothing?

Maybe there is an issue with the automated test from Shopify?

We will probably never know the truth :man_shrugging: