Liquid, JavaScript, themes, sales channels
Hi guys,
I don't know how to get shopOrigin and shat without using cookies after shopify changed to using session tokens
server.use(
createShopifyAuth({
apiKey: SHOPIFY_API_KEY,
secret: SHOPIFY_API_SECRET,
scopes: [SCOPES],
async afterAuth(ctx) {
//Auth token and shop available in session
//Redirect to shop upon auth
const { shop, accessToken } = ctx.session;
ctx.cookies.set("shopOrigin", shop, {
httpOnly: false,
secure: true,
sameSite: "none",
});
ctx.cookies.set("shat", accessToken, {
httpOnly: false,
secure: true,
sameSite: "none",
});
ctx.redirect("/");
},
})
);
router.get("/api/getwebhooks/:object", async (ctx) => {
const url =
"https://" +
ctx.cookies.get("shopOrigin") +
"/admin/api/2020-07/" +
ctx.params.object +
".json";
try {
const getAllSubWebhooks = await fetch(url, {
headers: {
"X-Shopify-Access-Token": ctx.cookies.get("shat"),
"Content-Type": "application/json",
},
method: "GET",
})
.then((response) => response.json())
.then((json) => {
return json;
});
ctx.res.statusCode = 200;
ctx.body = {
status: "success",
data: getAllSubWebhooks,
};
} catch (err) {
ctx.res.statusCode = 400;
ctx.body = {
status: "fail",
error: err,
};
}
});
From the code above you can see that I was able to use cookies to get shopOrigin and shat but after the change to session tokens, I do not know hot to get shopOrigin and shat in api/getwebhooks API
Below is the new Auth implementation
server.use(
createShopifyAuth({
async afterAuth(ctx) {
// Access token and shop available in ctx.state.shopify
const { shop, accessToken, scope } = ctx.state.shopify;
const host = ctx.query.host;
ACTIVE_SHOPIFY_SHOPS[shop] = scope;
const response = await Shopify.Webhooks.Registry.register({
shop,
accessToken,
path: "/webhooks",
topic: "APP_UNINSTALLED",
webhookHandler: async (topic, shop, body) =>
delete ACTIVE_SHOPIFY_SHOPS[shop],
});
if (!response.success) {
console.log(
`Failed to register APP_UNINSTALLED webhook: ${response.result}`
);
}
// Redirect to app with shop parameter upon auth
ctx.redirect(`/?shop=${shop}&host=${host}`);
},
})
);
Portrait of Stephen positioned next to an image of planet Earth, with the Stephen's World ...
By JasonH Mar 18, 2024Digital marketers and app developers have tracked activity in apps and websites for yea...
By Ollie Mar 13, 2024February was an exciting month with Shopify Editions, informative webinars, and more! F...
By JasonH Mar 7, 2024