-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: verifyJWT against nbf if present but use iat if not #45
Conversation
Codecov Report
@@ Coverage Diff @@
## develop #45 +/- ##
===========================================
+ Coverage 96.65% 96.71% +0.06%
===========================================
Files 7 7
Lines 209 213 +4
Branches 51 52 +1
===========================================
+ Hits 202 206 +4
Misses 7 7
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
There's a small correction to be made to the exp
comparison, and a couple tests that could be more specific.
Please take a look at the comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excellent work. thanks!
* feat: verifyJWT against nbf if present but use iat if not * fix: apply skew in the opposite direction when checking exp * test: make some test inputs more clear * test: use hard coded JWTs to test validFrom teimstamp * style: remove unused constants
* change iat to nbf * feat: Set `iat` timestamp by default instead of `nbf` (#43) * refactor: change createJWT to set iat by default instead of nbf * test: add tests for iat behavior in createJWT * feat: do not set iat if value in payload is null * fix: set payload.iat to undefined instead of null to omit from JWT * fix code style for division * fix code style BREAKING CHANGE: expiresIn option passed to createJWT now calculates exp from nbf instead of iat. * chore: add release automation configuration (#44) * feat: verifyJWT against nbf if present but use iat if not (#45) * feat: verifyJWT against nbf if present but use iat if not * fix: apply skew in the opposite direction when checking exp * test: make some test inputs more clear * test: use hard coded JWTs to test validFrom teimstamp * style: remove unused constants * feat: upgrade to local did resolver (#48) * feat: upgrade to local did resolver * refactor: export resolver so it can be mocked in tests * wip: refactor tests to remove dependency on uport and nacl did resolvers * test: fix tests to verify pregenerated JWT * test: fix hard coded jwts for validFrom timestamp tests * test: fix remaining * test: add tests for normalizeDID * refactor: upgrade ethr-did-resolver to fix imports * refactor: rename variables and clean up async syntax for tests
* change iat to nbf * feat: Set `iat` timestamp by default instead of `nbf` (#43) * refactor: change createJWT to set iat by default instead of nbf * test: add tests for iat behavior in createJWT * feat: do not set iat if value in payload is null * fix: set payload.iat to undefined instead of null to omit from JWT * fix code style for division * fix code style BREAKING CHANGE: expiresIn option passed to createJWT now calculates exp from nbf instead of iat. * chore: add release automation configuration (#44) * feat: verifyJWT against nbf if present but use iat if not (#45) * feat: verifyJWT against nbf if present but use iat if not * fix: apply skew in the opposite direction when checking exp * test: make some test inputs more clear * test: use hard coded JWTs to test validFrom teimstamp * style: remove unused constants * feat: upgrade to local did resolver (#48) * feat: upgrade to local did resolver * refactor: export resolver so it can be mocked in tests * wip: refactor tests to remove dependency on uport and nacl did resolvers * test: fix tests to verify pregenerated JWT * test: fix hard coded jwts for validFrom timestamp tests * test: fix remaining * test: add tests for normalizeDID * refactor: upgrade ethr-did-resolver to fix imports * refactor: rename variables and clean up async syntax for tests
This PR adds support for checking the current time against the
nbf
field when verifying a JWT. It prioritizes the presence ofnbf
in order to comply with W3C VC standards, but falls back toiat
when it is absent in order to maintain support for legacy format JWTs.This completes #167881436 on pivotal
Test scenarios have been added to validate the behavior for all combinations of
nbf
andiat
fields being part of the JWT or not.