verify-apple-id-token icon indicating copy to clipboard operation
verify-apple-id-token copied to clipboard

Support Edge Runtimes

Open kaaloo opened this issue 2 years ago • 0 comments
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

kaaloo avatar Jun 18 '23 18:06 kaaloo