I tried to simply upgrade this https://github.com/Shopify/shopify-demo-app-node-react
to use session token instead of cookies on Shopify.
So i followed this guide https://github.com/Shopify/koa-shopify-auth Migrating from cookie-based authentication to session tokens
Now my app look like :
server.js
router.get("(.*)", verifyRequest({ accessMode: "offline" }), handleRequest); // Everything else must have sessions
_app.js
function MyProvider(props) {
const app = useAppBridge();
const client = new ApolloClient({
fetch: authenticatedFetch(app),
fetchOptions: {
credentials: "include"
}
});
const Component = props.Component;
return (
<ApolloProvider client={client}>
<Component {...props} />
</ApolloProvider>
);
}
class MyApp extends App {
render() {
const { Component, pageProps, shopOrigin } = this.props;
const config = {
apiKey: API_KEY,
shopOrigin: shopOrigin,
forceRedirect: true
};
return (
<React.Fragment>
<Head>
<title>Shopy</title>
<meta charSet="utf-8" />
</Head>
<Provider config={config}>
<ClientRouter />
<AppProvider i18n={translations}>
<MyProvider Component={Component}>
</MyProvider>
</AppProvider>
</Provider>
</React.Fragment>
);
}
}
MyApp.getInitialProps = async ({ ctx }) => {
return {
shopOrigin: ctx.query.shop
};
};
So the problem is with apollo , i got an error Error: Network error: Unexpected token U in JSON at position 0
and in my ngrok i got GET /auth 400 Bad Request
Normally authenticatedFetch(app)
should authenticate my graphql request , but its always hitting the /auth
If someone have an idea or a working example of sessions token based on github react app i would be glad