UNPKG

kitcn

Version:

kitcn - React Query integration and CLI tools for Convex

24 lines (23 loc) 922 B
//#region src/auth/auth-config.ts const createPublicJwks = (jwks, options) => { const keyPairConfig = options?.jwks?.keyPairConfig; const defaultCrv = keyPairConfig && "crv" in keyPairConfig ? keyPairConfig.crv : void 0; return { keys: jwks.map((keySet) => ({ alg: keySet.alg ?? options?.jwks?.keyPairConfig?.alg ?? "EdDSA", crv: keySet.crv ?? defaultCrv, ...JSON.parse(keySet.publicKey), kid: keySet.id })) }; }; const getAuthConfigProvider = (opts) => { const parsedJwks = opts?.jwks ? JSON.parse(opts.jwks) : void 0; return { type: "customJwt", issuer: `${process.env.CONVEX_SITE_URL}`, applicationID: "convex", algorithm: "RS256", jwks: parsedJwks ? `data:text/plain;charset=utf-8;base64,${btoa(JSON.stringify(createPublicJwks(parsedJwks)))}` : `${process.env.CONVEX_SITE_URL}${opts?.basePath ?? "/api/auth"}/convex/jwks` }; }; //#endregion export { createPublicJwks, getAuthConfigProvider };