verify-apple-id-token
verify-apple-id-token copied to clipboard
Support Edge Runtimes
trafficstars
verify-apple-id-token cannot be used in the context of Vercel's Edge Runtime because of a lack of support of dynamic code evaluation:
https://nextjs.org/docs/messages/edge-dynamic-code-evaluation
This issue is due to dynamic code evaluation in both the jwks-rsa and jsonwebtoken packages. See for example the following next build error trace.
@upskyld/app:build: Failed to compile.
@upskyld/app:build:
@upskyld/app:build: ../../node_modules/lodash.clonedeep/index.js
@upskyld/app:build: Dynamic Code Evaluation (e. g. 'eval', 'new Function', 'WebAssembly.compile') not allowed in Edge Runtime
@upskyld/app:build: Learn More: https://nextjs.org/docs/messages/edge-dynamic-code-evaluation
@upskyld/app:build:
@upskyld/app:build: Import trace for requested module:
@upskyld/app:build: ../../node_modules/lodash.clonedeep/index.js
@upskyld/app:build: ../../node_modules/lru-memoizer/lib/async.js
@upskyld/app:build: ../../node_modules/lru-memoizer/lib/index.js
@upskyld/app:build: ../../node_modules/jwks-rsa/src/wrappers/cache.js
@upskyld/app:build: ../../node_modules/jwks-rsa/src/wrappers/index.js
@upskyld/app:build: ../../node_modules/jwks-rsa/src/JwksClient.js
@upskyld/app:build: ../../node_modules/jwks-rsa/src/index.js
@upskyld/app:build: ../../node_modules/verify-apple-id-token/dist/lib/verifyAppleIdToken.js
@upskyld/app:build: ../../node_modules/verify-apple-id-token/dist/index.js
@upskyld/app:build:
@upskyld/app:build: ../../node_modules/lodash/lodash.js
@upskyld/app:build: Dynamic Code Evaluation (e. g. 'eval', 'new Function', 'WebAssembly.compile') not allowed in Edge Runtime
@upskyld/app:build: Learn More: https://nextjs.org/docs/messages/edge-dynamic-code-evaluation
@upskyld/app:build:
@upskyld/app:build: Import trace for requested module:
@upskyld/app:build: ../../node_modules/lodash/lodash.js
@upskyld/app:build: ../../node_modules/jsonwebtoken/sign.js
@upskyld/app:build: ../../node_modules/jsonwebtoken/index.js
@upskyld/app:build: ../../node_modules/verify-apple-id-token/dist/lib/verifyAppleIdToken.js
@upskyld/app:build: ../../node_modules/verify-apple-id-token/dist/index.js
I have prepared fixed this issue on my fork by substituting the above two packages with jose which supports several edge runtimes and will prepare a PR for review.
https://github.com/panva/jose