En mi servidor, tengo la siguiente configuración para obtener los datos del usuario que ha iniciado sesión actualmente:
const server = new Koa(); const router = new Router(); server.keys = [Shopify.Context.API_SECRET_KEY]; server.use( createShopifyAuth({ async afterAuth(ctx) { // Access token and shop available in ctx.state.shopify const { shop, accessToken, scope } = ctx.state.shopify; const client = new Shopify.Clients.Rest(shop, accessToken); const data = await client.get({ path: 'users/current', });Estoy obteniendo los datos correctamente, pero me gustaría pasarlos al front-end. Intenté almacenar los datos en una variable global, intenté almacenar los datos en app.context e intenté almacenar los datos en ctx.state.
Mi idea es que podría obtener los datos y colocarlos en lo siguiente para poder realizar una solicitud de recuperación a este punto final/usuario:
router.get('/user', (ctx,next) => { next(); console.log('check for ctx.state: ', ctx.state); })Al final del día, necesito acceso a la tienda y accessToken desde la función Auth, por lo que necesito pasar los datos en lugar de realizar la solicitud de datos en la función router.get. No he trabajado con Koa antes, por lo que cualquier ayuda sería muy apreciada. ¡Gracias!
Me di cuenta de esto en caso de que esto pueda ser útil para alguien más:
dentro de la función server.use, tomé los datos y los almacené de la siguiente manera:
server.context.db = data; Este contexto le permite pasarlo a otros middlewares en toda la aplicación. Luego ctx.body = ctx.db.body en mi enrutador para poder usar una solicitud de recuperación para llegar a ese punto final