@shopify/shopify-api
Version:
Shopify API Library for Node - accelerate development with support for authentication, graphql proxy, webhooks
1 lines • 2.44 kB
Source Map (JSON)
{"version":3,"file":"get-jwt.mjs","sources":["../../../../../test-helpers/get-jwt.ts"],"sourcesContent":["import {createSecretKey} from 'crypto';\n\nimport {SignJWT} from 'jose';\n\nimport {JwtPayload} from '../lib';\n\nimport {USER_ID} from './const';\nimport {getShopValue} from './get-shop-value';\n\ninterface TestJwt {\n token: string;\n payload: JwtPayload;\n}\n\n/**\n * Creates and signs a JWT token to use in faking authorization for testing.\n *\n * @param store The name of the store for which to create a valid JWT token.\n * @param apiKey The Client ID/API key for the store for which to create a valid JWT token.\n * @param apiSecretKey The API secret for the store for which to create a valid JWT token.\n * @param overrides Optional overrides for the JWT payload.\n * @returns {TestJwt} The JWT token and the JWT payload used to create the token.\n */\nexport async function getJwt(\n store: string,\n apiKey: string,\n apiSecretKey: string,\n overrides: Partial<JwtPayload> = {},\n): Promise<TestJwt> {\n const date = new Date();\n const shop: string = getShopValue(store);\n const payload = {\n iss: `${shop}/admin`,\n dest: `https://${shop}`,\n aud: apiKey,\n sub: `${USER_ID}`,\n exp: date.getTime() / 1000 + 3600,\n nbf: date.getTime() / 1000 - 3600,\n iat: date.getTime() / 1000 - 3600,\n jti: '1234567890',\n sid: '0987654321',\n ...overrides,\n };\n const token = await new SignJWT(payload)\n .setProtectedHeader({alg: 'HS256'})\n .sign(createSecretKey(Buffer.from(apiSecretKey)));\n\n return {token, payload};\n}\n"],"names":[],"mappings":";;;;;AAcA;;;;;;;;AAQG;AACI,eAAe,MAAM,CAC1B,KAAa,EACb,MAAc,EACd,YAAoB,EACpB,SAAA,GAAiC,EAAE,EAAA;AAEnC,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE;AACvB,IAAA,MAAM,IAAI,GAAW,YAAY,CAAC,KAAK,CAAC;AACxC,IAAA,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,CAAA,EAAG,IAAI,CAAA,MAAA,CAAQ;QACpB,IAAI,EAAE,CAAA,QAAA,EAAW,IAAI,CAAA,CAAE;AACvB,QAAA,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,CAAA,EAAG,OAAO,CAAA,CAAE;QACjB,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI;QACjC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI;QACjC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI;AACjC,QAAA,GAAG,EAAE,YAAY;AACjB,QAAA,GAAG,EAAE,YAAY;AACjB,QAAA,GAAG,SAAS;KACb;AACD,IAAA,MAAM,KAAK,GAAG,MAAM,IAAI,OAAO,CAAC,OAAO;AACpC,SAAA,kBAAkB,CAAC,EAAC,GAAG,EAAE,OAAO,EAAC;SACjC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAEnD,IAAA,OAAO,EAAC,KAAK,EAAE,OAAO,EAAC;AACzB;;;;"}