UNPKG

@shopify/shopify-api

Version:

Shopify API Library for Node - accelerate development with support for authentication, graphql proxy, webhooks

1 lines 2.27 kB
{"version":3,"file":"get-jwt.mjs","sources":["../../../../../test-helpers/get-jwt.ts"],"sourcesContent":["import jwt from 'jsonwebtoken';\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 function getJwt(\n store: string,\n apiKey: string,\n apiSecretKey: string,\n overrides: Partial<JwtPayload> = {},\n): 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\n const token = jwt.sign(payload, apiSecretKey, {\n algorithm: 'HS256',\n });\n\n return {token, payload};\n}\n"],"names":[],"mappings":";;;;AAYA;;;;;;;;AAQG;AACG,SAAU,MAAM,CACpB,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;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE;AAC5C,QAAA,SAAS,EAAE,OAAO;AACnB,KAAA,CAAC;AAEF,IAAA,OAAO,EAAC,KAAK,EAAE,OAAO,EAAC;AACzB;;;;"}