Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
The current PyJWT library only support caching of single signing key. Ref to jpadilla#611
Even though it avoid the network call when the services periodically calling
get_signing_key
with samekid
, the current implementation doesn't have any TTL so the cache is stored forever. Also it still makes network call when differentkid
is provided.Solution & Implantation
JWKSetCache
object that stores jwk set with current timestampkid
from cached jwk set, it will make a new network call to get new jwk set and check again in new setget_signing_key
by default as suggested from this comment Cache signing keys jpadilla/pyjwt#611 (comment)