如何解决如何将ctx /上下文传递给导入的KOA中间件createShopifyAuth?
我希望将请求上下文传递到从需求(https://github.com/Shopify/koa-shopify-auth)生成的KOA中间件中。我设置了一些API密钥,这些密钥需要从以前的中间件传递到其中,但是当我到达createShopifyAuth时无法访问它们。
我尝试传递全局server.context,但是似乎不是从以前的中间件设置的。
server.use(async (ctx,next) => {
await shopifyKeys;
if (url.parse(ctx.originalUrl,true).query.shop) {
const shops = url.parse(ctx.originalUrl,true).query.shop;
server.context.keys = [shopifyKeys[shops].key,shopifyKeys[shops].secret];
console.log(server.context.keys);
}
return next();
});
server.use(
createShopifyAuth({
apiKey: server.context.keys[0],secret: server.context.keys[1],scopes: [
'read_products','read_checkouts','read_orders','write_orders',],async afterAuth(ctx) {
const { shop,accessToken } = ctx.session;
ctx.cookies.set('shopOrigin',shop,{
httpOnly: false,secure: true,sameSite: 'none',});
const registration = await registerWebhook({
address: `${HOST}/webhooks/orders/paid`,topic: 'ORDERS_PAID',accessToken,apiVersion: ApiVersion.July20,});
if (registration.success) {
console.log('Successfully registered webhook!');
} else {
console.log(
'Failed to register webhook',registration.result.data.webhookSubscriptionCreate.userErrors,);
}
ctx.redirect('/');
},}),);
在弄清楚如何将上下文放入第二台服务器方面的任何帮助。使用将不胜感激。
解决方法
据称我是KOA的新手,但我设法做到的唯一方法是通过分别通过cookie传递数据。这是一个示例:
server.use(
createShopifyAuth({
apiKey: SHOPIFY_API_KEY,secret: SHOPIFY_API_SECRET_KEY,scopes: [
"read_products","write_products","read_script_tags","write_script_tags","read_themes","write_themes",],accessMode: "offline",afterAuth(ctx) {
const { shop,accessToken } = ctx.session;
ctx.cookies.set("shopOrigin",shop,{
httpOnly: false,secure: true,sameSite: "none",});
ctx.cookies.set("accessToken",accessToken,});
ctx.redirect("/");
},}),);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。